cookiecutter를 이용해서 django 프로젝트를 쉽게 생성할 수 있다. 동작 방식은 다르지 않지만 파일 구조를 더 효율적으로 구분했기 때문에 기본으로 생성하는 방법보다 사용하기가 편리하다.
$ pip install cookiecutter
$ cookiecutter https://github.com/pydanny/cookiecutter-django
coockiecutter로 프로젝트를 생성하면 수십 가지 질문을 하며 다양한 설정 파일을 쉽게 지정할 수 있다.
project_name [My Awesome Project]:
project_slug [my_awesome_project]:
description [Behold My Awesome Project!]:
author_name [Daniel Roy Greenfeld]:
domain_name [example.com]:
email [daniel-roy-greenfeld@example.com]:
version [0.1.0]:
Select open_source_license:
1 - MIT
2 - BSD
3 - GPLv3
4 - Apache Software License 2.0
5 - Not open source
Choose from 1, 2, 3, 4, 5 [1]:
timezone [UTC]:
windows [n]:
use_pycharm [n]:
use_docker [n]:
Select postgresql_version:
1 - 11.3
2 - 10.8
3 - 9.6
4 - 9.5
5 - 9.4
Choose from 1, 2, 3, 4, 5 [1]:
Select js_task_runner:
1 - None
2 - Gulp
Choose from 1, 2 [1]:
Select cloud_provider:
1 - AWS
2 - GCP
3 - None
Choose from 1, 2, 3 [1]:
Select mail_service:
1 - Mailgun
2 - Amazon SES
3 - Mailjet
4 - Mandrill
5 - Postmark
6 - Sendgrid
7 - SendinBlue
8 - SparkPost
9 - Other SMTP
Choose from 1, 2, 3, 4, 5, 6, 7, 8, 9 [1]:
use_async [n]:
use_drf [n]:
custom_bootstrap_compilation [n]:
use_compressor [n]:
use_celery [n]:
use_mailhog [n]:
use_sentry [n]:
use_whitenoise [n]:
use_heroku [n]:
Select ci_tool:
1 - None
2 - Travis
3 - Gitlab
Choose from 1, 2, 3 [1]:
keep_local_envs_in_vcs [y]:
debug [n]:
[INFO]: .env(s) are only utilized when Docker Compose and/or Heroku support is enabled so keeping them does not make sense given your current setup.
[SUCCESS]: Project initialized, keep up the good work!
원하는 환경을 입력하면 이에 맞는 django 프로젝트가 생성된다.
먼저 디펜던시 모듈부터 설치하자.
requirements 폴더에 환경별로 필요한 디펜던시를 구분한다. 모든 환경에서 base.txt를 참조한다. 다른 프로젝트 구성에서도 이와 비슷한 컨벤션을 따른다.
$ pip install -r requirements/local.txt
database로 사용할 postgreSQL은 settings/base.py에서 설정한다.
이미 다른 클라우드 서비스에서 database를 운영하고 있으면 해당 주소와 아이디/비밀번호를 입력하고, 로컬에서 실행시킨다면 아래와 같이 입력한다. url 마지막에는 database 이름까지 포함했다.
DATABASES = {
"default": env.db("DATABASE_URL", default="postgres://posrgres:{password}@localhost:5432/awesome")
}
$ python manage.py makemigrations
$ python manage.py migrate
실제 db에 적용까지 시켰으니 pgAdmin으로 접속해서 확인할 수 있다.
직접 모델을 생성하지 않아도 프레임워크에서 사용되는 테이블들이 잔뜩 생성된다.
이제 모든 뼈대가 완성되었으니 서버를 실행하면 admin에서 빈 껍데기를 볼 수 있다.
$ python manager.py runserver
'python' 카테고리의 다른 글
django 커스텀 유저 모델 (0) | 2022.02.01 |
---|---|
django rest framework의 serializer, view 추상화 과정 (0) | 2020.06.25 |
django model 정리 (0) | 2020.06.13 |
Python 개발 가상환경 설정 (0) | 2019.10.20 |
댓글