장고 프로젝트의 구성
💡 참고하면 좋을 프로젝트 템플릿
https://github.com/pydanny/cookiecutter-django
또다른 쿠키커터 템플릿 : https://www.djangopackages.com/grids/g/coockiecutters
(장고의 기본 프로젝트는 튜토리얼용으로는 유용하지만 실제 프로젝트에는 그닥 유용하지않다)
💬 프로젝트의 구성
<repository_root>/
<django_project_root>/
<configuration_root>/
<repository_root>/ : 최상위 절대 루트, 배포에 필요한 다른파일등 중요한 내용 위치
(어떤 개발자들은 django_project_root 를 repo로 쓰기도 한다)
.gitignore : 깃이 처리하지 않을 파일과 디렉터리
README.rst : 개발자를 위한 프로젝트 문서
Makefile : 간단한 배포작업내용, 매크로를 포함한 파일
requirements.txt : 프로젝트에 이용되는 파이썬 패키지 목록
<django_project_root>/ : 모든 파이썬 코드는 이 디렉토리 이하에 위치한다
(django-admin.py startproject 명령어를 repo에서 실행하면 project 겸 repo가 된다)
config : 프로젝트 전반에 걸친 settings 파일, urls.py, wsgi.py 모듈들이 자리잡는 곳이다
manage.py : manage.py가 이곳에 위치하면 수정하지 않는것을 권장
media/ : media파일이 올라가는 장소
static : CSS, JS,image 등 정적파일을 위치시키는 곳
(장고 공식문서의 이름인데 assets 또는 다른이름으로 바꿀경우 STATICFILES_DIRS세팅 업데이트)
templates : 시스템 통합 템플릿 파일 저장장소
<configuration_root> : settings 모듈과 기본 URL config 가 저장되는 장소이다
유효한 패키지 형태여야한다(__init__.py가 존재해야한다는 의미)
💬 가상환경
가상환경에서 어떤 버전의 라이브러리가 쓰였는지 확인하려면
pip freeze --local 명령어를 사용하자
가상환경까지 repo에 넣어 관리할 필요는 없다
프로젝트에서 이용하는 패키지는 requirements.txt에 들어있고 가상환경안의 파일은 건드리지 않기 때문이다
💬 Startproject 살펴보기
startproject가 생성해주는 구성을 유지하며 템플릿을 구성하면 표준의 역할은 충실히 수행하지만
현업에서 쓰이는 템플릿에 맞추고 유연한 확장성과 편의를 추구하기 위해서는 cookiecutter-django로 제작을 해주는게 좋다
💬 Cookiecutter
쿠키커터는 질문을 통해 각종 설정 변수의 내용을 물어본다
입력된 값을 기반으로 프로젝트 표준 코드구성에 필요한 파일 제작
(settings, requirements, 초기문서, 초기 테스트환경)
cookiecutter https://github.com/pydanny/cookiecutter-django
명령어를 통해 쿠키커터를 포크하자
(또 다른 템플릿 https://github.com/imkevinxu/django-kevin)
핵심은 어떤 템플릿을 사용하더라도
반드시 명확하게 문서로 남겨서 알수있게 하는것이다.
출처 : two scoops of django
댓글 없음:
댓글 쓰기