يعد Cookiecutter Django، المدعوم من Cookiecutter، بمثابة إطار عمل لبدء مشاريع Django الجاهزة للإنتاج بسرعة.
يمكن تمكين هذه الميزات أثناء الإعداد الأولي للمشروع.
هذا المشروع هو مشروع مفتوح المصدر يديره متطوعون. يمكنك رعايتنا عبر OpenCollective أو بشكل فردي عبر رعاة GitHub:
المشاريع التي تقدم الدعم المالي للمشرفين:
Two Scoops of Django 3.x هو أفضل مرجع لـ Django تحت عنوان الآيس كريم في الكون!
يقدم لك PyUp تحديثات الأمان والتبعية الآلية التي تستخدمها Google والمؤسسات الأخرى. مجاني للمشاريع مفتوحة المصدر!
لنفترض أنك تريد إنشاء مشروع Django يسمى "redditclone". بدلاً من استخدام 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 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
الآن نلقي نظرة على الريبو الخاص بك. لا تنس أن تنظر بعناية إلى ملف README الذي تم إنشاؤه. رائع، أليس كذلك؟
بالنسبة للتنمية المحلية، راجع ما يلي:
قد تلاحظ أن بعض عناصر هذا المشروع لا تتطابق تمامًا مع ما وصفناه في الفصل الثالث. والسبب في ذلك هو أن هذا المشروع، من بين أمور أخرى، بمثابة اختبار لتجربة أفكار ومفاهيم جديدة. أحيانًا تنجح، وأحيانًا لا تنجح، لكن النتيجة النهائية هي أنها لن تتطابق بالضرورة تمامًا مع ما هو موصوف في الكتاب الذي شاركت في تأليفه.
إذا كنت تستخدم PyUp للحفاظ على اعتمادياتك محدثة وآمنة، فاستخدم أداة قطع ملفات تعريف الارتباط الخاصة بالرمز أثناء الدفع للحصول على خصم 15% كل شهر.
توجد أماكن متناثرة في لغة Python وHTML لهذا المشروع تحمل علامة "أغراضك". هذا هو المكان الذي سيتم فيه دمج مكتبات الطرف الثالث في مشروعك.
للحصول على دعم MySQL الكامل بالإضافة إلى Postgresql الافتراضي، يمكنك استخدام هذا الشوكة الخاصة بـ cookiecutter-django: https://github.com/mabdallahadeel/cookiecutter-django-mysql
هل تحتاج إلى إصدار مستقر؟ يمكنك العثور عليها على https://github.com/cookiecutter/cookiecutter-django/releases
هذا ما أريد. قد لا يكون ما تريد. لا تقلق، لديك خيارات:
إذا كانت لديك اختلافات في الإعداد المفضل لديك، فأنا أشجعك على إنشاء نسختك الخاصة. بمجرد الانتهاء من تشغيل الشوكة، أخبرني بذلك وسأضيفها إلى قائمة " قوالب ملفات تعريف الارتباط المشابهة " هنا. الأمر متروك لك فيما إذا كنت تريد إعادة تسمية شوكتك.
إذا قمت بإعادة تسمية شوكتك، فأنا أشجعك على إرسالها إلى الأماكن التالية:
نحن نقبل طلبات السحب إذا كانت صغيرة وذرية، ونجعل تجربة تطوير مشروعنا أفضل.
هل لديك مدونة أو منشور عبر الإنترنت؟ اكتب عن نصائح وحيل Cookiecutter-Django، ثم أرسل لنا طلب سحب مع الرابط.