Didukung oleh Cookiecutter, Cookiecutter Django adalah kerangka kerja untuk memulai proyek Django siap produksi dengan cepat.
Fitur-fitur ini dapat diaktifkan selama penyiapan proyek awal.
Proyek ini adalah proyek open source yang dijalankan oleh relawan. Anda dapat mensponsori kami melalui OpenCollective atau secara individu melalui GitHub Sponsor:
Proyek yang memberikan dukungan finansial kepada pengelola:
Two Scoops of Django 3.x adalah referensi Django bertema es krim terbaik di alam semesta!
PyUp memberi Anda pembaruan keamanan dan ketergantungan otomatis yang digunakan oleh Google dan organisasi lain. Gratis untuk proyek sumber terbuka!
Anggap saja Anda ingin membuat proyek Django bernama "redditclone". Daripada menggunakan startproject
dan kemudian mengedit hasilnya untuk memasukkan nama, email, dan berbagai masalah konfigurasi yang selalu terlupakan hingga saat terburuk, mintalah cookiecutter untuk melakukan semua pekerjaan.
Pertama, dapatkan Cookiecutter. Percayalah, ini luar biasa:
$ pip install "cookiecutter>=1.7.0"
Sekarang jalankan pada repo ini:
$ cookiecutter https://github.com/cookiecutter/cookiecutter-django
Anda akan diminta memasukkan beberapa nilai. Sediakan, maka proyek Django akan dibuat untuk Anda.
Peringatan : Setelah titik ini, ubah 'Daniel Greenfeld', 'pydanny', dll sesuai informasi Anda.
Jawab petunjuknya dengan pilihan yang Anda inginkan. Misalnya:
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
Masuk ke proyek dan lihat sekeliling:
$ cd reddit/
$ ls
Buat repo git dan dorong ke sana:
$ git init
$ git add .
$ git commit -m "first awesome commit"
$ git remote add origin [email protected]:pydanny/redditclone.git
$ git push -u origin master
Sekarang lihat repo Anda. Jangan lupa perhatikan baik-baik README yang dihasilkan. Luar biasa, bukan?
Untuk pengembangan lokal, lihat yang berikut ini:
Anda mungkin memperhatikan bahwa beberapa elemen proyek ini tidak sama persis dengan apa yang kami jelaskan di Bab 3. Alasannya adalah karena proyek ini, antara lain, berfungsi sebagai tempat uji coba untuk mencoba ide dan konsep baru. Terkadang berhasil, terkadang tidak, namun hasil akhirnya belum tentu sesuai dengan apa yang dijelaskan dalam buku yang saya tulis bersama.
Jika Anda menggunakan PyUp agar dependensi Anda tetap diperbarui dan aman, gunakan kode cookiecutter saat checkout untuk mendapatkan diskon 15% setiap bulan.
Tersebar di seluruh Python dan HTML proyek ini adalah tempat-tempat yang ditandai dengan "barang Anda". Di sinilah perpustakaan pihak ketiga harus diintegrasikan dengan proyek Anda.
Untuk mendapatkan dukungan penuh MySQL selain Postgresql default, Anda dapat menggunakan fork cookiecutter-django ini: https://github.com/mabdullahadeel/cookiecutter-django-mysql
Butuh rilis stabil? Anda dapat menemukannya di https://github.com/cookiecutter/cookiecutter-django/releases
Inilah yang saya inginkan. Ini mungkin bukan yang Anda inginkan. Jangan khawatir, Anda punya pilihan:
Jika Anda memiliki perbedaan dalam pengaturan pilihan Anda, saya mendorong Anda untuk melakukan ini untuk membuat versi Anda sendiri. Setelah garpu Anda berfungsi, beri tahu saya dan saya akan menambahkannya ke daftar ' Templat Pemotong Kue Serupa ' di sini. Terserah Anda apakah akan mengganti nama garpu Anda.
Jika Anda mengganti nama garpu Anda, saya mendorong Anda untuk mengirimkannya ke tempat-tempat berikut:
Kami menerima permintaan penarikan jika kecil, bersifat atomik, dan menjadikan pengalaman pengembangan proyek kami lebih baik.
Punya blog atau publikasi online? Tulis tentang tip dan trik cookiecutter-Django Anda, lalu kirimkan permintaan tarik kepada kami dengan tautannya.