간단한 채점 사이트가 필요하다는 얘기를 듣고 django로 사이트 프로젝트를 진행하기로 했다.
Django + Tailwind CSS + 약간의 JS를 사용할 것이다.
먼저 간단하게 가상환경을 생성하고, Django를 설치한다.
project > pipenv shell --three
project > pipenv shell
project > pipenv install Django==3.1.7
이제 django 프로젝트를 생성한다. (가상환경 안으로 들어와있어야 한다. pipenv shell
명령어를 실행한 후다.)
project > django-admin startproject config
위의 명령어를 실행하면 config
폴더가 생성되어있을텐데 이 폴더의 이름을 아무렇게나 변경하고, 안쪽 config
폴더와 manage.py
파일을 바깥으로 꺼낸다. 이름을 아무렇게나 변경한 폴더는 지운다.
바깥으로 꺼낸 config
폴더 안에 settings.py
파일이 있는데, 이 파일을 열어보면 아래와 같은 에러가 발생한다.
line too long (82 > 79 characters)flake8(E501)
아래처럼 flake8Args
에 max-length
를 설정해주면 된다. 그리고 pylance report missing module source
에러가 발생할 경우, cmd + shift + p
를 눌러서 python select interpreter를 검색해서 자신이 생성한 가상환경을 선택해주면 에러가 사라진다.
{
"editor.defaultFormatter": "ms-python.python",
"python.linting.flake8Args": ["--max-length=120"],
"python.linting.flake8Enabled": true,
"python.formatting.provider": "black",
"python.pythonPath": "자신 컴퓨터에 맞는 path"
}
이제 settings.py
의 SECRET_KEY
를 숨기기 위해서 dotenv를 설정해보자.
먼저 django-dotenv
를 설치한다.
project > pipenv install django-dotenv
그 다음 manage.py
파일을 수정해준다.
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
import dotenv # 여기를 추가해준다.
def main():
"""Run administrative tasks."""
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == "__main__":
dotenv.read_dotenv() # 여기를 추가해준다. 반드시 main함수보다 앞에 있어야한다.
main()
그리고 settings.py
파일에서 TIME_ZONE
과 LANGUAGE_CODE
를 변경해주자.
TIME_ZONE LIST는 여기에서 확인 가능하다.
LANGUAGE_CODE LIST는 여기에서 확인 가능하다.
...
LANGUAGE_CODE = "ko-KR"
TIME_ZONE = "Asia/Seoul"
...