Cookiecutter Django ขับเคลื่อนโดย Cookiecutter เป็นเฟรมเวิร์กสำหรับการเริ่มต้นโปรเจ็กต์ Django ที่พร้อมสำหรับการผลิตอย่างรวดเร็ว
คุณสมบัติเหล่านี้สามารถเปิดใช้งานได้ระหว่างการตั้งค่าโปรเจ็กต์เริ่มต้น
โครงการนี้เป็นโครงการโอเพ่นซอร์สที่ดำเนินการโดยอาสาสมัคร คุณสามารถสนับสนุนเราผ่าน OpenCollective หรือเป็นรายบุคคลผ่านทางผู้สนับสนุน GitHub:
โครงการที่ให้การสนับสนุนทางการเงินแก่ผู้ดูแล:
Two Scoops of Django 3.x เป็นการอ้างอิง Django ธีมไอศกรีมที่ดีที่สุดในจักรวาล!
PyUp นำเสนอการอัปเดตความปลอดภัยและการพึ่งพาอัตโนมัติที่ใช้โดย Google และองค์กรอื่น ๆ ฟรีสำหรับโครงการโอเพ่นซอร์ส!
สมมติว่าคุณต้องการสร้างโปรเจ็กต์ Django ชื่อ "redditclone" แทนที่จะใช้ startproject
แล้วแก้ไขผลลัพธ์เพื่อรวมชื่อ อีเมล และปัญหาการกำหนดค่าต่างๆ ของคุณที่มักจะถูกลืมไปจนถึงช่วงเวลาที่เลวร้ายที่สุด ให้ให้ cookiecutter จัดการทั้งหมด
ก่อนอื่นให้รับ Cookiecutter เชื่อฉันสิ มันยอดเยี่ยมมาก:
$ pip install "cookiecutter>=1.7.0"
ตอนนี้รันกับ repo นี้:
$ 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 repo และพุชไปที่นั่น:
$ git init
$ git add .
$ git commit -m "first awesome commit"
$ git remote add origin [email protected]:pydanny/redditclone.git
$ git push -u origin master
ตอนนี้ลองดูที่ repo ของคุณ อย่าลืมดู README ที่สร้างขึ้นอย่างรอบคอบ เจ๋งใช่มั้ย?
สำหรับการพัฒนาท้องถิ่น ดูดังต่อไปนี้:
คุณอาจสังเกตเห็นว่าองค์ประกอบบางอย่างของโครงการนี้ไม่ตรงกับที่เราอธิบายไว้ในบทที่ 3 ทุกประการ เหตุผลก็คือ โครงการนี้ทำหน้าที่เป็นพื้นที่ทดสอบสำหรับการทดลองใช้แนวคิดและแนวคิดใหม่ๆ บางครั้งก็ได้ผล บางครั้งก็ไม่ได้ผล แต่ผลลัพธ์สุดท้ายก็คือมันไม่ตรงกับสิ่งที่อธิบายไว้ในหนังสือที่ฉันร่วมเขียนอย่างแน่นอน
หากคุณใช้ PyUp เพื่อให้การอ้างอิงของคุณอัปเดตและปลอดภัย ให้ใช้โค้ด เครื่องตัดคุกกี้ ระหว่างการชำระเงินเพื่อรับส่วนลด 15% ทุกเดือน
ที่กระจัดกระจายไปทั่ว Python และ HTML ของโปรเจ็กต์นี้เป็นสถานที่ที่มีเครื่องหมาย "สิ่งของของคุณ" นี่คือที่ที่ไลบรารีบุคคลที่สามจะถูกรวมเข้ากับโปรเจ็กต์ของคุณ
หากต้องการรับการสนับสนุน MySQL เต็มรูปแบบนอกเหนือจาก Postgresql เริ่มต้น คุณสามารถใช้ทางแยกของ cookiecutter-django: https://github.com/mabdullahadeel/cookiecutter-django-mysql
ต้องการการเปิดตัวที่มั่นคงหรือไม่? คุณสามารถค้นหาได้ที่ https://github.com/cookiecutter/cookiecutter-django/releases
นี่คือสิ่งที่ฉันต้องการ อาจไม่ใช่สิ่งที่คุณต้องการ ไม่ต้องกังวล คุณมีตัวเลือก:
หากคุณมีความแตกต่างในการตั้งค่าที่คุณต้องการ ฉันขอแนะนำให้คุณแยกส่วนนี้เพื่อสร้างเวอร์ชันของคุณเอง เมื่อคุณใช้ส้อมได้แล้ว โปรดแจ้งให้เราทราบ แล้วฉันจะเพิ่มลงในรายการ ' เทมเพลตเครื่องตัดคุกกี้ที่คล้ายกัน ' ที่นี่ ขึ้นอยู่กับคุณว่าจะเปลี่ยนชื่อส้อมของคุณหรือไม่
หากคุณเปลี่ยนชื่อ fork ของคุณ ฉันขอแนะนำให้คุณส่งไปยังที่ต่อไปนี้:
เรายอมรับคำขอดึงหากคำขอมีขนาดเล็ก เป็นแบบอะตอมมิก และทำให้ประสบการณ์การพัฒนาโครงการของเราเองดีขึ้น
มีบล็อกหรือสิ่งพิมพ์ออนไลน์หรือไม่? เขียนเกี่ยวกับเคล็ดลับและลูกเล่นของ cookiecutter-django จากนั้นส่งคำขอดึงข้อมูลพร้อมลิงก์มาให้เรา