[야매Django] Django 개발환경 설정

유제·2021년 3월 30일
1

간단한 채점 사이트가 필요하다는 얘기를 듣고 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)

아래처럼 flake8Argsmax-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.pySECRET_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_ZONELANGUAGE_CODE를 변경해주자.

TIME_ZONE LIST는 여기에서 확인 가능하다.

LANGUAGE_CODE LIST는 여기에서 확인 가능하다.

...

LANGUAGE_CODE = "ko-KR"

TIME_ZONE = "Asia/Seoul"
...

0개의 댓글