코드잇에서는 pyenv
를 사용해 패키지 관리와 가상 환경을 구성하지만 나는 이전부터 사용한 poetry
를 사용하여 가상환경을 구성한다.
poetry init
을 통해 가상 환경을 구성하고 poetry add (command)
로 필요한 패키지(ex: poetry add django
)를 가상 환경에 설치하여 관리하도록 한다. 가상 환경으로의 진입은 poetry shell
로 진입할 수 있다.
poetry에 대한 것은 아래 블로그에서 정리된 정보를 알 수 있다.
django-admin startproject config .
을 통해 현재 작업 폴더에 django 웹 서버를 구동하기 위해서 필요한 필수 파일들과 디렉터리 구조를 생성한다. .
을 넣으면 현재 디렉토리를 프로젝트 디렉토리로 설정하기 때문에 나는 config파일의 의미로 사용하는 것을 선호한다.
Github에 프로젝트를 저장한다면 SECRET_KEY가 노출되지 않도록 해야한다.
extension에서 gitignore
을 설치하고 명령 팔레트(ctrl+shift+p
) -> Add ignore -> python을 설정하고 .gitignore
파일에 .env
가 있는지 확인한다.
프로젝트 디렉토리에 .env
를 생성하고 poetry add django-dotenv
로 패키지를 설치하고 config파일의 settings.py
와 루트 디렉토리의 manage.py
의 해당 부분을 아래와 같이 수정한다. SECRET_KEY
는 .env
파일에 SECRET_KEY="(키 값)"
로 저장한다.
django-dotenv
는 노출하고 싶지 않은 환경 변수를 로컬 환경에 담아 사용하기 편하도록 해주는 패키지이다.
settings.py
import os
SECRET_KEY = os.environ.get("SECRET_KEY")
manage.py
import dotenv
if __name__ == "__main__":
dotenv.read_dotenv()
main()
python manage.py startapp diarys
로 diarys앱을 생성한다.
앱은 복수형으로 하는 것을 권장하고 복수형의 정식 표기보다는 단수형-s로 하도록 한다.
config/settings.py
와 config/urls.py
를 아래와 같이 수정하여 diarys앱을 프로젝트가 인식할 수 있도록 한다.
settings.py
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"diarys",
]
urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("diarys.urls")),
]