Cookiecutter Django, созданный на базе Cookiecutter, представляет собой платформу для быстрого запуска готовых к производству проектов Django.
Эти функции можно включить во время первоначальной настройки проекта.
Этот проект представляет собой проект с открытым исходным кодом, управляемый волонтерами. Вы можете спонсировать нас через OpenCollective или индивидуально через спонсоров GitHub:
Проекты, оказывающие финансовую поддержку сопровождающим:
Two Scoops of Django 3.x — лучший во вселенной справочник по Django на тему мороженого!
PyUp предоставляет вам автоматические обновления безопасности и зависимостей, используемые Google и другими организациями. Бесплатно для проектов с открытым исходным кодом!
Давайте представим, что вы хотите создать проект Django под названием «redditclone». Вместо того, чтобы использовать startproject
, а затем редактировать результаты, включая ваше имя, адрес электронной почты и различные проблемы конфигурации, о которых всегда забывают до самого худшего момента, позвольте cookiecutter сделать всю работу.
Сначала возьмите Cookiecutter. Поверьте, это здорово:
$ pip install "cookiecutter>=1.7.0"
Теперь запустите его в этом репозитории:
$ cookiecutter https://github.com/cookiecutter/cookiecutter-django
Вам будет предложено ввести некоторые значения. Предоставьте их, и для вас будет создан проект Django.
Предупреждение : после этого замените «Дэниел Гринфельд», «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 и поместите его туда:
$ 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 для обновления и обеспечения безопасности своих зависимостей, используйте инструмент для обрезки кода во время оформления заказа, чтобы получать скидку 15 % каждый месяц.
По всему Python и HTML этого проекта разбросаны места, помеченные словом «ваши вещи». Здесь с вашим проектом необходимо интегрировать сторонние библиотеки.
Чтобы получить полную поддержку MySQL в дополнение к Postgresql по умолчанию, вы можете использовать эту вилку cookiecutter-django: https://github.com/mabdullahadeel/cookiecutter-django-mysql.
Нужен стабильный релиз? Вы можете найти их по адресу https://github.com/cookiecutter/cookiecutter-django/releases.
Это то, чего я хочу. Возможно, это не то, что вы хотите. Не волнуйтесь, у вас есть варианты:
Если у вас есть различия в предпочитаемой вами настройке, я рекомендую вам создать свою собственную версию. Как только ваша вилка заработает, дайте мне знать, и я добавлю ее в список « Похожие шаблоны формочек для печенья » здесь. Вам решать, переименовывать ли свой форк.
Если вы переименуете свою вилку, я рекомендую вам отправить ее в следующие места:
Мы принимаем запросы на включение, если они небольшие, атомарные и улучшают наш собственный опыт разработки проектов.
У вас есть блог или интернет-издание? Напишите о своих советах и приемах по использованию cookiecutter-django, а затем отправьте нам запрос на включение со ссылкой.