Cookiecutter를 기반으로 하는 Cookiecutter Django는 프로덕션 준비가 완료된 Django 프로젝트를 빠르게 시작하기 위한 프레임워크입니다.
이러한 기능은 초기 프로젝트 설정 중에 활성화할 수 있습니다.
본 프로젝트는 자원봉사자들이 운영하는 오픈소스 프로젝트입니다. OpenCollective를 통해 또는 GitHub 후원자를 통해 개별적으로 후원하실 수 있습니다.
관리자에게 재정적 지원을 제공하는 프로젝트:
Two Scoops of Django 3.x는 우주 최고의 아이스크림 테마 Django 레퍼런스입니다!
PyUp은 Google 및 기타 조직에서 사용하는 자동화된 보안 및 종속성 업데이트를 제공합니다. 오픈 소스 프로젝트에는 무료입니다!
"redditclone"이라는 Django 프로젝트를 만들고 싶다고 가정해 보겠습니다. startproject
사용한 다음 최악의 순간까지 항상 잊혀지는 이름, 이메일 및 다양한 구성 문제를 포함하도록 결과를 편집하는 대신, cookiecutter가 모든 작업을 수행하도록 하십시오.
먼저 Cookiecutter를 구입하세요. 저를 믿으세요. 정말 대단해요.
$ pip install "cookiecutter>=1.7.0"
이제 이 저장소에 대해 실행해 보세요.
$ cookiecutter https://github.com/cookiecutter/cookiecutter-django
몇 가지 값을 입력하라는 메시지가 표시됩니다. 이를 제공하면 Django 프로젝트가 생성됩니다.
주의 : 이 시점 이후에는 'Daniel Greenfeld', 'pydanny' 등을 자신의 정보로 변경하세요.
원하는 옵션을 사용하여 프롬프트에 응답합니다. 예를 들어:
Cloning into 'cookiecutter-django'...
remote: Counting objects: 550, done.
remote: Compressing objects: 100% (310/310), done.
remote: Total 550 (delta 283), reused 479 (delta 222)
Receiving objects: 100% (550/550), 127.66 KiB | 58 KiB/s, done.
Resolving deltas: 100% (283/283), done.
project_name [My Awesome Project]: Reddit Clone
project_slug [reddit_clone]: reddit
description [Behold My Awesome Project!]: A reddit clone.
author_name [Daniel Roy Greenfeld]: Daniel Greenfeld
domain_name [example.com]: myreddit.com
email [[email protected]]: [email protected]
version [0.1.0]: 0.0.1
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]: 1
Select username_type:
1 - username
2 - email
Choose from 1, 2 [1]: 1
timezone [UTC]: America/Los_Angeles
windows [n]: n
Select an editor to use. The choices are:
1 - None
2 - PyCharm
3 - VS Code
Choose from 1, 2, 3 [1]: 1
use_docker [n]: n
Select postgresql_version:
1 - 16
2 - 15
3 - 14
4 - 13
5 - 12
Choose from 1, 2, 3, 4, 5 [1]: 1
Select cloud_provider:
1 - AWS
2 - GCP
3 - None
Choose from 1, 2, 3 [1]: 1
Select mail_service:
1 - Mailgun
2 - Amazon SES
3 - Mailjet
4 - Mandrill
5 - Postmark
6 - Sendgrid
7 - Brevo (formerly SendinBlue)
8 - SparkPost
9 - Other SMTP
Choose from 1, 2, 3, 4, 5, 6, 7, 8, 9 [1]: 1
use_async [n]: n
use_drf [n]: y
Select frontend_pipeline:
1 - None
2 - Django Compressor
3 - Gulp
4 - Webpack
Choose from 1, 2, 3, 4 [1]: 1
use_celery [n]: y
use_mailpit [n]: n
use_sentry [n]: y
use_whitenoise [n]: n
use_heroku [n]: y
Select ci_tool:
1 - None
2 - Travis
3 - Gitlab
4 - Github
Choose from 1, 2, 3, 4 [1]: 4
keep_local_envs_in_vcs [y]: y
debug [n]: n
프로젝트에 들어가서 둘러보세요:
$ cd reddit/
$ ls
git repo를 생성하고 거기에 푸시합니다.
$ git init
$ git add .
$ git commit -m "first awesome commit"
$ git remote add origin [email protected]:pydanny/redditclone.git
$ git push -u origin master
이제 저장소를 살펴보세요. 생성된 README를 주의 깊게 살펴보는 것을 잊지 마십시오. 정말 멋지죠?
로컬 개발의 경우 다음을 참조하세요.
이 프로젝트의 일부 요소는 3장에서 설명하는 내용과 정확히 일치하지 않는다는 점을 알 수 있습니다. 그 이유는 무엇보다도 이 프로젝트가 새로운 아이디어와 개념을 시도하기 위한 테스트 베드 역할을 하기 때문입니다. 작동할 때도 있고 작동하지 않을 때도 있지만 최종 결과는 제가 공동 집필한 책에 설명된 내용과 정확히 일치하지 않을 수도 있다는 것입니다.
종속성을 업데이트하고 안전하게 유지하기 위해 PyUp을 사용하는 경우 결제 시 코드 cookiecutter를 사용하여 매달 15% 할인을 받으세요.
이 프로젝트의 Python과 HTML 전체에는 "your stuff"라고 표시된 장소가 흩어져 있습니다. 이곳은 타사 라이브러리가 프로젝트와 통합되는 곳입니다.
기본 Postgresql 외에 전체 MySQL 지원을 받으려면 cookiecutter-django의 다음 포크를 사용할 수 있습니다: https://github.com/mabdullahadeel/cookiecutter-django-mysql
안정적인 릴리스가 필요하십니까? https://github.com/cookiecutter/cookiecutter-django/releases에서 찾을 수 있습니다.
이것이 내가 원하는 것이다. 당신이 원하는 것이 아닐 수도 있습니다. 걱정하지 마세요. 다음과 같은 옵션이 있습니다.
선호하는 설정에 차이가 있는 경우 이를 포크하여 자신만의 버전을 만드는 것이 좋습니다. 포크가 작동되면 알려주시면 여기 ' 유사한 Cookiecutter 템플릿 ' 목록에 추가하겠습니다. 포크의 이름을 바꿀지 여부는 귀하에게 달려 있습니다.
포크 이름을 바꾸려면 다음 위치에 제출하는 것이 좋습니다.
우리는 소규모이고 원자적인 풀 요청을 수락하며 자체 프로젝트 개발 경험을 더 좋게 만듭니다.
블로그나 온라인 출판물이 있나요? cookiecutter-django 팁과 요령을 작성한 후 링크와 함께 끌어오기 요청을 보내주세요.