Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Python
- 티스토리
- 징검다리 건너기
- bulk update
- trie
- 크레인 인형뽑기 게임
- 티스토리 open api
- 카카오 인턴
- 알고리즘
- 보행자 천국
- 트라이 #trie #알고리즘
- 호텔 방 배정
- 가사 검색
- Open API
- jdbc
- 불량 사용자
- CleanCode
- Tistory
- Spring Boot
- 튜플
- 트라이
- 프로그래머스
- pycon
Archives
- Today
- Total
택시짱의 개발 노트
3장. 어떻게 장고 프로젝트를 구성할 것인가 본문
3.1. 장고 3's의 기본 프로젝트 구성
django-admin startproject mysite
cd mysite
django-admin startapp my_app
기본 프로젝트 구조
mysite/
├── manage.py
├── my_app
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── mysite
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
3.2. 우리가 선호하는 프로젝트 구성
원서 업데이트 내용
<repository_root>/
├── <configuration_root>/
├── <django_project_root>/
repository_root
- 프로젝트의 최상위 루트
django_projectroot
와configuration_root
를 제외한 나머지README.md
,docs
,manage.py
,.gitignore
,requirements.txt
파일 등등이 있고 그 프로젝트를 배포하는데 필요한 다른 중요한 내용이 위치한다.
configuration_root
settings
모듈과 기본URLConf(urls.py)
가 저장되는 장소이다.- configuration_root 안의 파일은
django-admin.py start-project
명령으로 생성도니 파일의 일부이다
django_project_root
- 장고 프로젝트 소스들이 위치하는 디렉터리.
django-admin.py startproject
명령어를 이용할 때 명령어를 저장소 루트 디렉토리 안에서 실행하면 생성된 장고 프로제젝트가 프로젝트 루트가 된다.
3.3. 예제 프로젝트 구성
원서 업데이트 내용
icecreamratings_project
├── config/
│ ├── settings/
│ ├── __init__.py
│ ├── asgi.py
│ ├── urls.py
│ └── wsgi.py
├── docs/
├── icecreamratings/
│ ├── media/ # Development only!
│ ├── products/
│ ├── profiles/
│ ├── ratings/
│ ├── static/
│ └── templates/
├── .gitignore
├── Makefile
├── README.md
├── manage.py
└── requirements.txt
저장소 루트의 파일과 디렉토리
.gitignore
git이 처리하지 않을 파일과 디렉터리
config/
프로젝트 전체 설정, urls.py, wsgi.py 모듈이 위치하는 디렉토리
Makefile
간단한 배포 작업 내용과 매크로들을 포함한 파일이다
manage.py
내용을 수정하면 안된다
README.md and docs/
개발자를 위한 프로젝트 문서들
requirements.txt
우리의 프로젝트에 필요한 python package의 리스트
incecramratings/
프로젝트의
장고 프로젝트 파일과 디렉토리
media
개발 용도로 이용되는 디렉토리. 사용자가 올리는 사진 드으이 미디어 파일이 올라가는 장소. 큰 프로젝트의 경우 사용자들이 올리는 미디어 파일들은 독립된 서버에서 호스팅 한다.
products/
아이스크림 브랜드를 보여주고 관리하는 앱
profiles/
이용자 프로필을 관리하고 보여주는 앱
ratings/
이용자가 매긴 점수를 관리하는 앱
static/
CSS, 자바스크립트, 이미지 등 사용자가 올리는 것 이외의 정적 파일들을 위치시키는 곳이다. 큰 프로젝트의 경우 독립된 서버에서 호스팅 한다.
templates/
시스템 통합 템플릿 파일 저장 장소
3.4. virtualenv 설정
Don't Upload Environment Directories To Public Repos
- virtualenv는 시스템에 설치된 python에 영향을 주지 않고 새로운 python 가상 환경을 만들 수 있게 도와준다. 이 가상 환경에서는 python 실행파일, 라이브러리 설치 장소 등이 제공되고 '가상 환경'답게 패키지를 설치해도 기존 시스템에 영향을 주지 않도록 설계 되어 있다.
- virtualenv의 내용까지 버전 컨트롤 시스템 (git)에 넣어서 관리할 필요는 없다. 프로젝트에서 이용되는 패키지 정보는 requirements.txt 파일 안에 정의 되어 있기 때문에 requirements.txt 파일은 반드시 버전 컨트롤 시스템으로 관리 해야 한다.
현재 virtualenv에서 설치된 패키지 리스트 저장
$ pip freeze > requirements.txt
3.5. startproject 살펴보기
자료
3.6. 요약
- 프로젝트 구성은 개발자 또는 개발자 그룹마다 서로 사뭇 다른 이용 모습을 보이는 부분이다.
작은 팀에서 최적으로 효과를 내던 구성이라도 분산된 자원을 공유하는 큰 팀에서는 잘 적용되지 않거나 그만큼 효과를 낼 수 없을지도 모른다.
핵심은 어떤 구성을 택하더라도 반드시 명확하게 문서로 남겨야 한다는 것이다.
반응형
'Django(장고)' 카테고리의 다른 글
9장. 함수 기반 뷰의 모범적인 이용 (0) | 2021.10.10 |
---|---|
4장. 장고 앱 디자인의 기본 (0) | 2021.09.02 |
Two Scoops of Django - 1장 코딩 스타일 (0) | 2021.08.26 |
Django DRF response format 만들기 (JSONRenderer 이용) (0) | 2021.02.13 |
drf serializer에서 instance 유무의 차이 (0) | 2021.02.04 |
Comments