كيفية إنشاء مشروع Django من قالب

مرحبا مجددا! خاصة بالنسبة لطلاب الدورة التدريبية "مطور الويب في Python" ، قمنا بإعداد ترجمة أخرى مثيرة للاهتمام.





يُعد قالب مشروع Django طريقة طبيعية لحل المشكلات التي تنشأ عندما يتوقف تنسيق مشروع Django الافتراضي عن تلبية المتطلبات. اليوم في هذا الدليل سوف تتعلم كيفية إنشاء مشروعك الخاص من قالب.

ما هو قالب المشروع في جانغو؟


واحدة من الميزات غير المعروفة في Django هي القدرة على إنشاء مشروع من قالب ، أي بنية دليل مخصصة.

يعد هذا مناسبًا عندما لا يكون تنسيق المشروع الافتراضي كافيًا (ولن يكون كافيًا بالتأكيد عندما تريد نشر الحل الخاص بك عند الإنتاج ، صدقني) ، أو عندما تصل إلى النقطة التي ستستخدم فيها نفس التكوينات مرارًا وتكرارًا لـ الكثير من المشاريع في Django.

قالب مشروع Django ليس أكثر من مشروع له بنية دليل مخصصة محددة مسبقًا يمكنك إنشاؤها بنفسك في دقائق.
مثال على قالب Django الشهير هو django-cookiecutter . جانغو كوكيكوتريحتوي على مجموعة واسعة من الوظائف والتكوينات الجاهزة بالفعل للنشر ذات الاكتفاء الذاتي في الإنتاج ، وهذا هو المسار الذي يمكن استخدامه لإنشاء أي مشروع جديد تقريبًا على Django.

ومع ذلك ، فإن django-cookiecutter في بعض الأحيان زائدة عن الحاجة ، خاصة للمبتدئين ، لذلك قبل استخدامه ، قم بإنشاء قالب Django أبسط يمكنه مساعدتك بشكل أفضل على فهم الأساسيات.

في الأقسام التالية ، ستتعلم كيفية إنشاء القالب الخاص بك.

كيفية إنشاء قالب مشروع Django الخاص بك


للبدء ، قم بإنشاء بيئة Python افتراضية في المجلد المحدد وقم بتثبيت Django (لاحظ أن هذه أربعة أوامر منفصلة):

mkdir project-name && cd $_
python3 -m venv venv
source venv/bin/activate
pip install django

ثم قم بإنشاء مشروع Django مع:

django-admin startproject project_name .

انتبه إلى اسم، ينبغي بالضبط PROJECT_NAME . بعد ذلك ، افتح المشروع في المحرر.

(لاحظ أن في مثالنا، كنت PROJECT_NAME للمجلد واسم المشروع).

الآن أنت بحاجة الى ان ننظر في كل ملف في المشروع واستبدال كافة PROJECT_NAME مع {{PROJECT_NAME}} (سطر واحد سد الأمر الغرامة).

الملفات التي ستحتاج إلى تعديلها:

  • إدارة
  • Settings.py
  • wsgi.py
  • asgi.py

كما قد تكون خمنت ، فإن متغير {{project_name}} هو عنصر نائب. على سبيل المثال ، في Manage.py ستحتاج إلى استبدال ما يلي:

# manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')
    try:
# omit

على هذا:

# manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings')
    try:
# omit

في wsgi.py قمت بتغيير هذا:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')

الى الآتى \ الى القادم \ الى الم:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings')

إلخ.

بالإضافة إلى ذلك ، يمكنك إنشاء أي تكوين تريده ، أو حتى أفضل ، تحليل إعدادات Django في ملفات منفصلة للتطوير والاختبار والإنتاج. ستجد مثالاً هنا .

قبل المتابعة إلى الخطوة التالية ، تأكد من إزالة البيئة الافتراضية من قالب المشروع.

كيفية إنشاء مشروع Django من القالب الخاص بك


الآن بعد أن أصبح لديك قالب المشروع ، يمكنك استخدامه.

للقيام بذلك ، أنشئ بيئة Python افتراضية جديدة في مجلد آخر وقم بتثبيت Django:

mkdir new-django-project && cd $_
python3 -m venv venv
source venv/bin/activate
pip install django

الآن ، بدلاً من مجرد تنفيذ django-admin startproject ، سنقوم بتمرير علامة --template للتثبيت من قالبنا . افترض أنك إذا قمت بإنشاء قالب في دليل الصفحة الرئيسية ~ / project-name ، فستفعل:

django-admin startproject --template ~/project-name new_django_project .

سيقوم هذا الأمر بإنشاء مشروع Django جديد من القالب.

(لاحظ أنه في هذا المثال ، استخدمت new-django-project كمجلد خارجي و new_django_project لاسم المشروع).

الآن قد تتساءل عما إذا كان من الممكن استخدام نموذج بعيد من المستودع على GitHub ، على سبيل المثال. نعم بالطبع!

كيفية إنشاء مشروع Django من قالب بعيد


يمكن أن تقبل علامة --template الخاصة بمشروع البدء عنوان URL كمصدر بعيد. لذلك يمكنك إنشاء مشروع Django من قالب بعيد ، على سبيل المثال:

django-admin startproject --template https://github.com/username/repo/archive/master.zip new_django_project .

المكافأة: قوالب لكل شيء


بالإضافة إلى توحيد الملفات المتعلقة بجانغو ، يمكنك أن تفعل الشيء نفسه مع أي ملف آخر في المشروع.

تخيل أنك بحاجة إلى النشر في Heroku حيث يلزم ملف Procfile . لتمرير Procfile من خلال نظام القوالب بحيث يتم استبدال {{project_name}} بالاسم الفعلي للمشروع ، يمكنك تشغيل مشروع البداية بعلامة --name .

django-admin startproject --template https://github.com/username/repo/archive/master.zip --name=Procfile new_django_project .

تأكد من أن Procfile لديها نائبا ل PROJECT_NAME :

release: python manage.py migrate
web: gunicorn -w 3 {{ project_name }}.wsgi --log-file -

المصادر


لإنشاء قالب جانغو متطورة، نلقي نظرة على ponee ، قالب جانغو خفيفة الوزن، وجاهزة للاستخدام مع Heroku.

هذه مادة صغيرة ولكنها مثيرة للاهتمام. نحن في انتظار تعليقاتك ودعوتنا إلى ندوة عبر الإنترنت مجانية ، وفي إطارها سنتعلم بالتفصيل كيفية اختبار المشاريع على Flask ، وكتابة وتشغيل الاختبارات للمشاريع على Flask ، وإنشاء بيانات اختبار باستخدام Faker و Factory Boy.

All Articles