Cookiecutter Django 由 Cookiecutter 提供支持,是一个用于快速启动生产就绪 Django 项目的框架。
这些功能可以在初始项目设置期间启用。
该项目是一个由志愿者运行的开源项目。您可以通过 OpenCollective 赞助我们,也可以通过 GitHub 赞助商单独赞助我们:
为维护者提供财政支持的项目:
两勺 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 存储库并将其推送到那里:
$ git init
$ git add .
$ git commit -m "first awesome commit"
$ git remote add origin [email protected]:pydanny/redditclone.git
$ git push -u origin master
现在看看您的存储库。不要忘记仔细查看生成的自述文件。太棒了,对吧?
对于本地开发,请参阅以下内容:
您可能会注意到该项目的某些元素与我们在第 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 找到它们
这就是我想要的。这可能不是你想要的。别担心,您有选择:
如果您的首选设置有所不同,我鼓励您分叉此版本来创建您自己的版本。一旦你的 fork 工作了,请告诉我,我会将其添加到此处的“类似 Cookiecutter 模板”列表中。是否重命名您的分叉取决于您。
如果您确实重命名了您的分叉,我鼓励您将其提交到以下位置:
如果拉取请求很小、很原子,我们就会接受它们,并让我们自己的项目开发体验更好。
有博客或在线出版物吗?写下您的 cookiecutter-django 提示和技巧,然后向我们发送带有链接的拉取请求。