Cookiecutter Django basiert auf Cookiecutter und ist ein Framework für den schnellen Start produktionsreifer Django-Projekte.
Diese Funktionen können während der ersten Projekteinrichtung aktiviert werden.
Dieses Projekt ist ein Open-Source-Projekt, das von Freiwilligen durchgeführt wird. Sie können uns über OpenCollective oder individuell über GitHub-Sponsoren sponsern:
Projekte, die die Betreuer finanziell unterstützen:
Two Scoops of Django 3.x ist die beste Django-Referenz zum Thema Eis im Universum!
PyUp bietet Ihnen automatisierte Sicherheits- und Abhängigkeitsupdates, die von Google und anderen Organisationen verwendet werden. Kostenlos für Open-Source-Projekte!
Nehmen wir an, Sie möchten ein Django-Projekt namens „redditclone“ erstellen. Anstatt startproject
zu verwenden und die Ergebnisse dann so zu bearbeiten, dass sie Ihren Namen, Ihre E-Mail-Adresse und verschiedene Konfigurationsprobleme enthalten, die immer bis zum schlimmsten Moment vergessen werden, lassen Sie cookiecutter die ganze Arbeit erledigen.
Holen Sie sich zuerst Cookiecutter. Vertrauen Sie mir, es ist großartig:
$ pip install "cookiecutter>=1.7.0"
Führen Sie es nun gegen dieses Repo aus:
$ cookiecutter https://github.com/cookiecutter/cookiecutter-django
Sie werden zur Eingabe einiger Werte aufgefordert. Geben Sie diese an, dann wird ein Django-Projekt für Sie erstellt.
Warnung : Ändern Sie nach diesem Punkt „Daniel Greenfeld“, „Pydanny“ usw. in Ihre eigenen Informationen.
Beantworten Sie die Eingabeaufforderungen mit Ihren eigenen gewünschten Optionen. Zum Beispiel:
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
Betreten Sie das Projekt und schauen Sie sich um:
$ cd reddit/
$ ls
Erstellen Sie ein Git-Repo und übertragen Sie es dorthin:
$ git init
$ git add .
$ git commit -m "first awesome commit"
$ git remote add origin [email protected]:pydanny/redditclone.git
$ git push -u origin master
Schauen Sie sich jetzt Ihr Repo an. Vergessen Sie nicht, die generierte README-Datei sorgfältig durchzulesen. Großartig, oder?
Informationen zur lokalen Entwicklung finden Sie hier:
Möglicherweise stellen Sie fest, dass einige Elemente dieses Projekts nicht genau mit dem übereinstimmen, was wir in Kapitel 3 beschreiben. Der Grund dafür ist, dass dieses Projekt unter anderem als Testumgebung für das Ausprobieren neuer Ideen und Konzepte dient. Manchmal funktionieren sie, manchmal nicht, aber das Endergebnis ist, dass es nicht unbedingt genau dem entspricht, was in dem Buch beschrieben wird, das ich mitverfasst habe.
Wenn Sie PyUp verwenden, um Ihre Abhängigkeiten auf dem neuesten Stand und sicher zu halten, verwenden Sie beim Bezahlvorgang den Code- Cookiecutter, um jeden Monat 15 % Rabatt zu erhalten.
Überall in Python und HTML dieses Projekts sind Stellen verstreut, die mit „Ihre Sachen“ gekennzeichnet sind. Hier sollen Bibliotheken von Drittanbietern in Ihr Projekt integriert werden.
Um zusätzlich zum Standard-Postgresql vollständige MySQL-Unterstützung zu erhalten, können Sie diesen Fork von cookiecutter-django verwenden: https://github.com/mabdullahadeel/cookiecutter-django-mysql
Benötigen Sie eine stabile Version? Sie finden sie unter https://github.com/cookiecutter/cookiecutter-django/releases
Das ist es, was ich will. Es könnte sein, dass es nicht das ist, was Sie wollen. Keine Sorge, Sie haben Möglichkeiten:
Wenn Sie Unterschiede in Ihrem bevorzugten Setup haben, empfehle ich Ihnen, dies zu forken, um Ihre eigene Version zu erstellen. Sobald Ihr Fork funktioniert, lassen Sie es mich wissen und ich füge ihn hier zur Liste „ Ähnliche Cookie-Cutter-Vorlagen “ hinzu. Es liegt an Ihnen, ob Sie Ihren Fork umbenennen.
Wenn Sie Ihren Fork umbenennen, empfehle ich Ihnen, ihn an die folgenden Stellen einzureichen:
Wir akzeptieren Pull-Anfragen, wenn sie klein und atomar sind, und verbessern so unsere eigene Projektentwicklungserfahrung.
Haben Sie einen Blog oder eine Online-Publikation? Schreiben Sie über Ihre Cookiecutter-Django-Tipps und Tricks und senden Sie uns dann eine Pull-Anfrage mit dem Link.