본문 바로가기

TIL

[TIL 2024. 04. 18] django 프로젝트시 주의점

django로 개인과제를 해보면서 프로젝트 생성 직후에 해두면 좋은 것과 이렇게 했다가 오류나서 헤맸던 것들을 미래의 나를 위해 정리해놓으려고 한다..

 

일단 기본적으로 프로젝트 생성을 전후해서 챙겨야 할 사항은 다음과 같다

  • 가상환경 생성 및 활성화
    • 어차피 가상환경이 활성화만 되어있으면 위치는 상관없으니 프로젝트 생성하고, 그 디렉토리에 바로 가상환경을 생성하는 것을 추천해도 될 것 같다. 이번에 프로젝트 디렉토리의 상위 폴더인 django라는 이름의 dir에 가상환경을 생성했는데, git bash터미널에서 가상환경 활성화 하려고 디렉토리를 오가는게(cd ..) 너무 번거로웠다.
  • git init과 add/commit, branch나눠서 개발하고 로컬에서 merge해서 remote로 push하기 (깃허브 3줄 코드를 붙여넣으면 remote repository와의 최초 연결을 자동으로 하고 최초push까지 알아서 진행해준다
  • 프로젝트 디렉토리는 (가능한 한) 한 번에 전부 생성해서, config dir의 settings.py에 "등록"하기
  • 전체적인 구조도 초반에 잡고가면 편하다
    • manage.py가 있는 동일선상에: templates/base.html, static/css/, media/images/, requirements.txt
    • 각 앱에: app name/templates/app name, app name/static/app name
    • 그리고 각 앱마다 forms.py나 urls.py가 필요하면 파일을 따로 생성해줌
      • 단, urls.py는 먼저 생성해두고 비워두면 계속 오류 메시지가 뜨기 때문에 경로 지정을 위해 필요해지면 그때그때 만드는 게 좋다!
    •   custom user model을 쓸 거면 프로젝트 초반에 모델 정의만 해두고 내용은 "pass"로 해두고 넘어가면 된다
      • custom user model을 프로젝트 중간에 하려고 하면 sqlite.db 삭제는 물론 각 앱마다 migration파일을 다 지우줘야 하는 등 번거로워진다.
    • config dir의 settings.py에서 챙겨야 될 부분은 가능한 모두 챙기고 가자. (+config dir의 urls.py(media파일관련해서 DBUG모드인 경우))
      • 단, 여기서도 config dir의 urls.py에서도 include로 미리 각 앱마다의 경로를 지정해두면 계속 오류나므로, 필요할 때에 그때그때 urls는 해결하는 걸로..!
      • settings.py에서 챙길 부분:
        • INSTALLED_APPS
        • TEMPLATES
        • AUTH_USER_MODEL(custom user model을 쓸 경우)
        • STATIC_URL, STATIC_ROOT, STATICFILES_DIRS
        • MEDIA_URL, MEDIA_ROOT