Cookiecutter を利用した Cookiecutter Django は、本番環境に対応した Django プロジェクトを迅速に開始するためのフレームワークです。
これらの機能は、プロジェクトの初期セットアップ時に有効にすることができます。
このプロジェクトはボランティアによって運営されるオープンソース プロジェクトです。 OpenCollective 経由で、または GitHub スポンサー経由で個別にスポンサーすることができます。
メンテナに財政的支援を提供するプロジェクト:
Two Scoops of Django 3.x は、アイスクリームをテーマにした世界最高の Django リファレンスです。
PyUp は、Google やその他の組織で使用されている自動セキュリティと依存関係の更新を提供します。オープンソースプロジェクトには無料です!
「redditclone」という Django プロジェクトを作成するとします。 startproject
使用して結果を編集して名前、メールアドレス、最悪の瞬間まで忘れ去られるさまざまな設定の問題を含める代わりに、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
次に、リポジトリを見てみましょう。生成された README を注意深く確認することを忘れないでください。すごいですよね?
ローカル開発については、以下を参照してください。
このプロジェクトの一部の要素が、第 3 章で説明した内容と正確に一致していないことに気づくかもしれません。その理由は、とりわけ、このプロジェクトが新しいアイデアやコンセプトを試すためのテストベッドとして機能するためです。うまくいくこともあれば、うまくいかないこともありますが、最終的には、私が共著した本に記載されている内容と必ずしも正確に一致するとは限りません。
依存関係を最新かつ安全に保つために PyUp を使用している場合は、チェックアウト時にコードクッキーカッターを使用すると、毎月 15% オフになります。
このプロジェクトの Python と HTML には、「あなたのもの」とマークされた場所が散在しています。ここで、サードパーティのライブラリをプロジェクトに統合します。
デフォルトの Postgresql に加えて完全な MySQL サポートを取得するには、cookiecutter-django のフォークを使用できます: https://github.com/mabdullahadeel/cookiecutter-django-mysql
安定版リリースが必要ですか?これらは https://github.com/cookiecutter/cookiecutter-django/releases で見つけることができます。
これが私が望むものです。それはあなたが望んでいることではないかもしれません。心配しないでください。次のようなオプションがあります。
好みの設定に違いがある場合は、これをフォークして独自のバージョンを作成することをお勧めします。フォークが機能するようになったら、お知らせください。ここの「類似のクッキーカッター テンプレート」リストに追加します。フォークの名前を変更するかどうかはあなた次第です。
フォークの名前を変更する場合は、次の場所に提出することをお勧めします。
プル リクエストが小さく、アトミックであり、私たち自身のプロジェクト開発エクスペリエンスを向上させる場合は、プル リクエストを受け入れます。
ブログやオンライン出版物をお持ちですか? cookiecutter-django のヒントやコツについて書いて、リンクを含むプル リクエストを送信してください。