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 提示和技巧,然後向我們發送帶有連結的拉取請求。