إزالة الغموض عن سحر Django
نشرت: 2022-03-10وفقًا للوثائق الرسمية ،
يعد Django إطار عمل ويب Python عالي المستوى يشجع التطوير السريع والتصميم النظيف والعملي. تم إنشاؤه بواسطة مطورين ذوي خبرة ، وهو يعتني بالكثير من متاعب تطوير الويب ، بحيث يمكنك التركيز على كتابة تطبيقك دون الحاجة إلى إعادة اختراع العجلة. إنه مجاني ومفتوح المصدر.
- DjangoProject.com
إنه أحد أطر عمل Python الشائعة لبناء تطبيقات الويب ويفضل كثيرًا لقابلية التوسع في إنشاء نموذج معياري مع التكوينات والملفات الموضوعة. هذا يختتم الهدف الكامل لـ Django للمطورين ؛
"... إنشاء تطبيق رائع في وقت قصير وتقليل القلق بشأن الإعدادات الأساسية."
هناك تكوينات أساسية وملفات وأنماط تتخلل جميع تطبيقات الويب ، بغض النظر عما تقوم ببنائه. عند استخدام Django ، يتم إنشاؤها لك تلقائيًا عندما تقوم بتشغيل أوامر معينة في نقاط مختلفة في دورة تطوير تطبيقك. مع هذا ، سيكون لديك ما يكفي من الوقت للتركيز على الجانب الأساسي لتطوير تطبيقك بينما يتولى Django الآخرين نيابة عنك.
هذا يعني أن هناك الكثير من الأشياء التي تحدث تحت غطاء المحرك. بالنسبة لشخص ليس لديه فهم كامل للأجزاء المتحركة ، فقد يكون هذا أمرًا ساحقًا. في هذه المقالة سوف نتعرف على ما يلي:
- تركيب Django
-
startproject
وstartapp
- ملفات تكوين Django التي تشمل ؛
- settings.py
- urls.py
- إدارة
- نماذج التخطيط
- التوجيه
سوف نتعلم كيف تتلاءم كل هذه الأشياء معًا والدور الذي تلعبه. من المهم أن تعرف أنه لن يكون من الممكن إلقاء نظرة على كل ما يحدث داخل Django. بالنسبة للحالات التي تقع خارج نطاق هذا البرنامج التعليمي ، ستكون هناك روابط لتوجيهك إلى الموارد التي ستساعدك في ذلك.
لغرض التعلم ، سنقوم ببناء منصة للتجارة الإلكترونية. هذا ليس موقع تجارة إلكترونية متكامل ، تطبيقنا سيحتوي فقط على ميزتين أساسيتين ؛ إنشاء المنتجات وتقديم الطلبات من وجهة نظر المسؤول.
ستوجهك هذه المقالة خلال فهم أوامر وملفات وأساسيات Django المعدة مسبقًا. إنه يستهدف المطورين الذين استخدموا Django أو ينوون استخدامه ويريدون معرفة ما يحدث تحت الغطاء. في حين أنه ليس إلزاميًا أن تكون قد استخدمت Django ، فإن امتلاك خبرة في أساسيات Django قبل متابعة هذه المقالة سوف يمنحك ميزة. يجب أن يكون لديك معرفة عملية ببايثون لفهم ما سيتم تغطيته في هذه المقالة بشكل كامل.
تثبيت Django
إذا لم يكن لديك Django مثبتًا بالفعل ، فإليك خطوات القيام بذلك.
أولاً ، قم بإنشاء بيئة افتراضية تسمى djangodev
. تحتاج إلى هذا لعزل مساحة عمل Django والحزم التابعة لها.
python3 -m venv ~/.virtualenvs/djangodev
الآن للدخول إلى بيئتك الافتراضية ، تحتاج إلى تفعيلها ؛
source ~/.virtualenvs/djangodev/bin/activate
إذا واجهت أي خطأ أثناء تشغيل source
، يمكنك الاستفادة من هذا الأمر البديل ،
. ~/.virtualenvs/djangodev/bin/activate
لمستخدمي Windows ، استخدم هذا بدلاً من ذلك ،
...\> %HOMEPATH%\.virtualenvs\djangodev\Scripts\activate.bat
ملاحظة: أنت بحاجة إلى تنشيط البيئة الافتراضية في أي وقت تريد استخدام Django.
الآن بعد أن أصبحت في بيئتك الافتراضية ، قم بتثبيت Django:
python -m pip install Django
للتحقق مما إذا تم تثبيت Django بشكل صحيح ، قم بتشغيل ؛
python -m django --version
شكابوم! أنت الآن جاهز لبعض السحر ، جهز صولجاك!
قد تكون طريقة إنشاء الملفات والمجلدات أثناء التنقل بسيطة ومباشرة. ومع ذلك ، فهي ليست مثالية عندما تضطر إلى إنشاء مشروع متوسط أو كبير وموعد نهائي للتغلب عليه. لدينا دائمًا موعد نهائي يجب تجاوزه ، حتى بالنسبة للمشاريع الشخصية.
باتباع هذه الطريقة عند إنشاء مشروع كبير جديد ، سيتعين عليك إنشاء ملفات ومجلدات متعددة وإجراء إعدادات متعددة ، مما قد يؤدي إلى إنشاء أخطاء يمكن تجنبها والكثير من الوقت الضائع. أوامر startproject
و startapp
المتوفرة لنا من خلال Django تهدف إلى حل هذه المشكلة. يقوم هذان الأمران بإنشاء ملفات ومجلدات وتنفيذ الكثير من التهيئة لك.
لنبدأ بإنشاء تطبيق جديد باستخدام الأمر startproject
.
تطبيق السقالات
سننشئ تطبيقنا ونلقي نظرة على الملفات التي تم إنشاؤها ، بالإضافة إلى بعض الأوامر التي سنستخدمها. قم بتشغيل هذا الأمر في الجهاز الخاص بك للبدء ؛
django-admin startproject ecommerce_site
عند تثبيت Django ، تتم إضافة django-admin
إلى مسارك لمنحه حق الوصول لأداء إجراءاته. إنها أداة سطر أوامر Django للمسؤوليات الإدارية. تعرف على المزيد من استخدامات django-admin
هنا ؛ إنه خارج نطاق هذا المقال قليلاً.
startproject
هو أمر Django يساعد في إنشاء المشروع . هنا نمرر إليه اسم موقع التجارة الإلكترونية الخاص بمشروعنا. ثم يستمر في إنشاء المشروع في دليل يسمى موقع التجارة الإلكترونية . يجب أن يبدو الدليل بهذا الشكل ،
سنحتاج إلى الانتقال إلى الدليل الذي تم إنشاؤه حديثًا وتشغيل الأمر لإنشاء التطبيق .
cd ecommerce_site python manage.py startapp trading
startapp
هو أمر يتم تنفيذه بواسطة manage.py
في دليل المشروع ، ويقوم بإنشاء ملفات متعددة ، ومجلد يسمى باستخدام الاسم المحدد في الأمر ، في هذه الحالة ، ما هو محدد هو trading
. يتكون مجلد التطبيق من ملفات بسيطة يجب أن تكون ضرورية لإنشاء ميزات التطبيق. الآن يجب أن يبدو دليلك كما يلي:
إذا كنت تتساءل عن الفرق بين المشروع والتطبيق. المشروع هو تطبيق ويب Django ، يمكن أن يتكون من تطبيق واحد أو أكثر. إنه المجلد الذي يحتوي على manage.py
النمطية الأخرى التي تتضمن settings.py
والملفات الأخرى. التطبيق عبارة عن حزمة python تقوم بميزة معينة ، وتتضمن ملفات مثل models.py
ودليل الترحيل والمزيد. يمكنك التحقق من هذه الإجابة على Stack Overflow للمزيد.
سيقوم startproject
بإنشاء دليل المشروع الرئيسي ، بينما سيقوم startapp
بإنشاء دليل التطبيق. تم تمرير كلاهما أيضًا اسمًا لاستخدامه في الجيل. startproject
هو أول أمر يتم تشغيله عند إنشاء مشروع جديد ، بينما يتم تشغيل startapp
داخل دليل المشروع الجديد.
يعد التخطيط الحالي تعيينًا رائعًا يمكنك استخدامه لأي تطبيق تقوم بإنشائه. إنه قابل للتطوير ويتكون من الملفات التي ستحتاجها. هناك فرصة لإنشاء وإعادة تسمية وتحرير ونقل الملفات داخل المشروع.
تكوين Django
يوفر لك Django إعدادات وتكوينات مختلفة ، بعد تشغيل الأمرين في ملفين مختلفين ، دعنا ننتقل من خلال الملفات التي تم إنشاؤها لمعرفة ما يفعله كل منهما.
settings.py
تحتاج معظم تطبيقات الويب إلى تكوينات مثل ؛ المصادقة للتحقق من المستخدمين ، أذونات للسماح لبعض المستخدمين بقدرات معينة ووضع معايير الأمان. كل ذلك ضروري لمنح المستخدمين أفضل تجربة مطلوبة. سوف يستغرق الأمر وقتًا طويلاً بالنسبة لك كمطور لبدء تشغيل كل منها بنفسك ، لكل تطبيق تعمل عليه.
يوفر لك Django هذه التكوينات المطلوبة والمزيد - بحيث يمكنك اختيار التكوينات التي تريدها وتوصيلها. ويتم ذلك في settings.py
، هناك بالفعل إعدادات موضوعة تم إنشاؤها لتوفير الوظائف الأساسية لك.
عندما يحاول Django تشغيل مشروع ، هناك متغيرات معينة يبحث عنها. ملف settings.py
هو الملف الذي يحتوي على تلك المتغيرات التي تؤدي إلى ملفات أو معلومات أخرى. يتم توجيه Django إلى هذا الملف من ملف manage.py
ويأخذ المعلومات أو يحمّل الملفات الأخرى التي يقود إليها من هنا.
هذه التكوينات تشمل:
-
DEBUG
تم تعيين وظيفةDEBUG
علىTrue
لتمكين قراءة الأخطاء وتصحيح التعليمات البرمجية قيد التطوير ، ويجب تعيينها علىFalse
أثناء الإنتاج (أي عند النشر). يتيح لك هذا الإعداد أن تكون قادرًا على تصحيح أخطاء التعليمات البرمجية بشكل أفضل بمساعدة Django عندما يحاول تشغيل الكود الخاص بك. -
INSTALLED_APPS
هذه قائمة بجميع التطبيقات التي تؤدي ميزة معينة في Django. يأتي مع بعض التطبيقات الافتراضية مثل'django.contrib.auth'
الذي يتم استخدامه لمصادقة المستخدم ، وdjango.contrib.admin'
لوظائف الإدارة ، و'django.contrib.messages'
اللازمة لإرسال الإشعارات أو المعلومات إلى المستخدمين. يجب أن يكون أي تطبيق آخر تقوم بإنشائه باستخدام الأمرstartapp
هنا قبل أن يتمكن Django من تشغيله. -
MIDDLEWARE
هو إطار عمل خفيف الوزن لمعالجة المدخلات والمخرجات التي تمر عبر طلبات واستجابات Django. تقوم كل برمجية وسيطة بوظيفة معينة مع أحد التطبيقات ، مثل'django.contrib.auth.middleware.AuthenticationMiddleware'
تعمل مع'django.contrib.sessions'
لربط المستخدمين بالطلبات. يجب عليك التحقق من الميزات الإضافية لكل برنامج وسيط في المستندات. -
ROOT_URLCONF
هو متغير لمسار يبحث فيه Django عنurlpatterns
الخاصة بك عندما يتم تمرير طلب إلى تطبيق Django الخاص بك. عندما يتم تقديم طلب في تطبيق Django ، يبحث Django في هذا المتغير ويحمل الملف الرئيسي والحلقات من خلال قائمةurlpatterns
بحثًا عن المسار المطابق. -
TEMPLATES
هي إعداد للسماح بعرض ملفات HTML لتمثيل طريقة عرض. يتواصل مع تطبيقات الطلب والمصادقة والرسائل. تمكّن قيمة'BACKEND'
ومجموعة'APP_DIRS'
علىTrue
Django من البحث عن ملفات HTML داخل مجلد / قوالب . إن'context_processors'
فيOPTIONS
عبارة عن عناصر قابلة للاستدعاء ، تأخذ في الطلب كوسيطة وتدمجها مع السياق عند عرض القالب ، وتعمل هذه العناصر القابلة للاستدعاء للمساعدة في تصحيح الأخطاء والمصادقة والتعامل مع الطلبات بشكل عام. -
WSGI_APPLICATION
هو مسار يؤدي إلى متغيرapplication
في ملفwsgi.py
-
DATABASE
هي قاموس يمكنه الوصول إلى قاعدة بيانات خارجية (أو داخلية كما في حالة sqlite الافتراضي) مثل PostgresSQL و MySQL و MongoDB. فيما يلي مثال على قاعدة بيانات Postgres التي سأستخدمها على سبيل المثال لدينا:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'db_name', 'USER': 'db_user', 'PASSWORD': 'db_password', 'HOST': 'localhost', 'PORT': '', } }
يمكنك أن تقرر استخدام قاعدة بيانات sqlite الافتراضية ، وهذا لا يعمل بشكل جيد للإنتاج. يمكنك إعداد قاعدة بيانات Postgres كما هو مذكور أعلاه ، سيتعين عليك إنشاء قاعدة البيانات أولاً وتمرير المستخدم وكلمة المرور بإذن الكتابة إلى قاعدة البيانات.
ملاحظة : لغرض هذا البرنامج التعليمي ، يمكنك استخدام مجموعة قاعدة بيانات sqlite الافتراضية بالفعل. ما ورد أعلاه هو عرض توضيحي حول كيفية تعيين اتصال قاعدة بيانات SQL و NO-SQL في Django.
-
AUTH_PASSWORD_VALIDATORS
هي وظائف يتم استدعاؤها للتحقق من صحة كلمة المرور. يتم استدعاؤها عند إنشاء سجلات المستخدمين (والمسؤولين أيضًا) وإعادة تعيين كلمات المرور وتغييرها. يمكنك معرفة المزيد عنها من الوثائق الرسمية.
يمكن العثور على مزيد من الوثائق حول الإعدادات هنا.
manage.py
تحتاج معظم مشاريع الويب إلى نقطة دخول تبدأ منها الأوامر. نقطة دخول تعمل كبوابة للتطبيق. في كل مشروع من مشاريع Django ، عادة ما يكون هذا الملف هو ملف manage.py
.
هذا الملف مطلوب كنقطة بداية في التطبيق الخاص بك. من هنا ، يتم تشغيل جميع الأوامر ويبدأ كل شيء هنا.
يؤدي manage.py
نفس وظيفة django-admin. كما أنه يخبر Django بموقع التكوينات الموجودة في تطبيقك. يتم تعيين هذا بشكل افتراضي ولا يحتاج إلى تغيير.
يستخدم وظيفة def main()
للتعامل مع وحدة الإعدادات الافتراضية لملف settings.py
. يحاول استيراد وظيفة التنفيذ ، وإذا حدث خطأ ، فإنه يطرح خطأ ImportError
. وإلا فإنه يأخذ أي وسيطة يتم تمريرها بواسطة sys.argv
من سطر الأوامر ويتم تنفيذها.
sys.argv
هي قائمة تأخذ الأمر الذي تم تمريره عبر الجهاز. عندما نقوم بتشغيل python manage.py runserver
في سطر الأوامر ، يتم تعيين sys.argv
على ["manage.py", "runserver"]
ويتم تمرير هذا إلى وظيفة execute()
.
يتم تعيين الحجج مثل python manage.py startapp trading
أو python manage.py makemigrations
إلى [ "manage.py", "startapp", "trading"]
و ["manage.py", "makemigrations"]
على التوالي للتنفيذ.
تم تعيين عبارة if للتشغيل إذا تم تعيين الأمر المعطى على manage.py
.
بصرف النظر عن تشغيل django-admin
، ستستخدمها في تشغيل الخادم ومعالجة عمليات الترحيل والأوامر الأخرى التي سيستخدمها مشروعك. ستحتاج إليها أيضًا عند نشر مشروعاتك واختبارها وتصحيحها.
تخطيط النموذج
يوفر لك Django تصميمًا بسيطًا للنمذجة. يمكنك تكوين النماذج الخاصة بك في ملف models.py
في دليل trading
. فصولك (أو نماذجك) عبارة عن تخطيطات ستتبعها جداول قاعدة البيانات.
أنت تحدد الفئات الخاصة بك بناءً على أنواع البيانات التي تريد الحصول عليها من المستخدم (أو المسؤول) لكل جدول. تُنشئ نماذجنا ملف ترحيل يعمل مع متغير DATABASE
في settings.py
.
لنقم بإنشاء نموذجين سنحتاجهما للمنتجات والطلبات:
from django.db import models class Product(models.Model): name = models.CharField(max_length=50) image = models.ImageField(upload_to='products', default='python.png') price = models.IntegerField() description = models.TextField() def __str__(self): return self.name class Order(models.Model): product = models.ForeignKey(Product, on_delete=models.CASCADE) quantity = models.IntegerField() date = models.DateField(auto_now_add=True) user = models.CharField(max_length=50) def __str__(self): return self.user
نموذج المنتج له اسم وسعر ووصف وصورة (والتي عند حفظها سيتم تحميلها إلى مجلد products
. يتم إنشاء هذا إذا كان المجلد غير موجود). يحتوي order
على product
(مرتبط بجدول products
) والكمية والتاريخ وأعمدة المستخدم.
باستخدام هذه المعلومات ، يُنشئ Django مخطط قاعدة بيانات للتطبيق. أيضًا ، يُنشئ واجهة برمجة تطبيقات للوصول إلى قاعدة بيانات Python للوصول إلى كائنات المنتج والنظام. تمتلك Django أداة ترحيل مدمجة ، لذا لن تضطر إلى استخدام الحزم الخارجية لعمليات الترحيل.
الخطوة التالية هي تشغيل أمر الترحيل والترحيل إلى قاعدة البيانات. ولكن قبل القيام بذلك ، يتعين علينا تسجيل trading
كتطبيق في دليل المشروع الخاص بنا.
أولاً ، علينا تكوين دليل التداول كتطبيق في Django. قام Django بعمل ذلك نيابةً عنك في ملف app.py
يسجل هذا الملف trading
كتطبيق وسيُستخدم مرة أخرى في ملف settings.py
.
الآن ، في settings.py
أضف trading
في INSTALLED_APP
. يجب أن تبدو هذه:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'trading.apps.TradingConf', ]
على المحطة ، قم بتشغيل:
$ python manage.py makemigrations trading $ python manage.py migrate
ملاحظة: يجب تنشيط بيئتك الافتراضية ويجب أن تكون داخل دليل المشروع.
يأخذ python manage.py makemigrations trading
في الاعتبار التغييرات التي تم إجراؤها في وحدة التداول ويقوم بإنشاء ملف في مجلد migration
الخاص بالتغييرات في models.py
و python manage.py migrate
ثم يقوم بتحديث التغييرات.
يمكنك العثور على ملف الترحيل الذي تم إنشاؤه من الأمر python manage.py makemigrations trading
في دليل migration
المسمى 0001_initial.py
. يمكنك رؤية الفئات والأعمدة كأوامر للإنشاء داخل الملف. مع إجراء المزيد من التغييرات في models.py
، سيتم إنشاء المزيد من الملفات هنا.
ميزات المسؤول
في تطبيقنا الحالي ، سنحتاج إلى ميزات المسؤول لإدارة المنتجات والطلبات التي سيتم إنشاؤها في التطبيق. يوفر لنا Django وظائف إدارية مدمجة تحت تصرفنا بالفعل. تم أيضًا تسجيل تطبيق المسؤول (الميزة) في قائمة INSTALLED_APP
الخاصة بنا ؛ 'django.contrib.admin'
.
أيضًا ، تم أيضًا تسجيل عنوان URL الخاص urls.py
urlpatterns
path('admin/', admin.site.urls),
،. يتيح لك ملف admin.py
تسجيل النماذج وإجراءات CRUD التي سيتم تنفيذها على النماذج.
لإعداد المسؤول ، قم بتشغيل هذا على الجهاز:
$ python manage.py createsuperuser
سيُطلب منك إدخال اسم مستخدم وبريد إلكتروني وكلمة مرور. بعد ذلك ، قمت بإنشاء مسؤول بنجاح. لبدء استخدام وظيفة المسؤول ، قم بتشغيل الخادم:
$ python manage.py runserver
ستؤدي زيارة https://127.0.0.1:8000/admin/ إلى جلسة تسجيل دخول ، عند تسجيل الدخول (باستخدام اسم المستخدم وكلمة المرور اللذين أنشأتهما) يتم توجيهك إلى لوحة تحكم المسؤول:
المجموعات والمستخدمون هي تكوينات افتراضية تسمح للمسؤول بالوصول إلى إدارة المستخدمين والأذونات. الآن دعنا نسجل نماذجنا.
في admin.py
، أضف الأسطر التالية:
from django.contrib import admin # Register your models here. from .models import Product, Order admin.site.register(Product) admin.site.register(Order)
from django.contrib import admin
الاستيراد وظيفة المسؤول من Django ، ثم قمنا باستيراد الفئتين من models.py
.
بعد تسجيل النماذج ، يجب أن تبدو لوحة القيادة كما يلي:
إضافة المنتجات:
إصدار أوامر من لوحة تحكم المسؤول:
توجيه سهل
يحتاج كل موقع إلى مسار أو عناوين URL تؤدي إلى صفحات معينة بها معلومات معينة للمستخدم النهائي. يتم الوصول إلى مجموعات من المعلومات أو التطبيقات المماثلة في مسار معين. هناك حاجة لتجميع المسارات معًا للوصول والاتصال داخل الملفات. قام Django بعمل ذلك من أجلك في ملف urls.py
urls.py
هو ملف يبدأ من متغير ROOT_CONF
في settings.py
. هذا هو المكان الذي يتم فيه تكوين عنوان URL الرئيسي الخاص بنا. عندما نقوم بإنشاء عروض في ملفات أو مجلدات مختلفة ، أو حتى في ملف urls.py
، يجب تكوينها في قائمة urlpatterns
.
يتوقع Django قائمة باسم urlpatterns
في الملف. يمكنك تغيير الملف الموجود في المتغير ROOT_CONF
إلى أي ملف آخر قمت بوضعه في قائمة urlpatterns
.
urlpatterns = [ path('admin/', admin.site.urls), ]
تتكون القائمة من كائنات تمثل حالات path
أو re-path
. يحتوي كل مثيل على معلمتين إلزاميتين ، النمط 'admin/'
وملف عرض أو عنوان URL admin.site.urls
.
قد تؤدي المثيلات أيضًا إلى ملف آخر به المزيد من تكوينات URL. يتم ذلك من أجل المقروئية.
views.py
هناك حاجة مهمة لتطبيق الواجهة الخلفية وهي العروض التي يقوم كل مسار بتعيينها. في Django ، تكتب وظيفتك أو عروضك المستندة إلى الفصل لتطبيق ما في ملف views.py
. العرض هو فئة أو وظيفة تعالج طلبًا وترسل استجابة إلى المستخدم.
قم بتحرير ملف views.py
الخاص بك إلى هذا:
from django.http import HttpResponse def home(request): return HttpResponse("This is a shopping site for products") def order(request): return HttpResponse("Hello, welcome to our store, browse to our products and order!")
هنا قمنا باستيراد HTTPResponse
لاستخدامه في تحديد طريقتي عرض (طرق عرض الوظيفة) لإرجاع الجملة عند استدعائها. يجب استدعاء def home
عند زيارة العنوان الأساسي def order
التعريف عند الوصول إلى عنوان URL الخاص بالطلب.
بعد إنشاء وجهات النظر الخاصة بنا ، نحتاج إلى تخصيصها لمسارات مختلفة (أو urlpatterns
). يمكن القيام بذلك بعدة طرق ، يمكننا إنشاء قائمة urlpatterns
في نفس الملف ، أو يمكننا استيراد trading.views
إلى ملف ecommerce_site.urls
وإنشاء المسار.
الطريقة المفضلة للقيام بذلك هي إنشاء ملف تكوين عنوان URL فرعي (داخل trading
) ، وإدراجه في ecommerce_site.urls
. قم بإنشاء ملف urls.py
في دليل trading
. يجب أن يبدو دليلك بالشكل التالي:
trading/ __init__.py admin.py apps.py migrations/ __init__.py 0001_initial.py models.py tests.py urls.py views.py
أضف الكود التالي إلى ملفك الجديد ( urls.py
)
from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), path('order/', views.order, name='order'), ]
لنقم بتسجيل ملف تكوين عنوان URL الخاص trading
( urls.py
) في ملف تكوين عناوين URL الخاصة بالمشروع ،
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include('trading.urls')) ]
لتتمكن من الوصول إلى urlpatterns
، سنستخدم فئة include
من django.urls
في السطر 2. ثم اختر نمطًا وأرفق ملف urls.py
في دليل التداول.
ما فعلناه هنا هو استيراد فئة path
من django وملف views.py
. ثم تتكون قائمتنا من مثالين للمسار لكل عرض. لذلك يتم استدعاء def home
على https://127.0.0.1:8000/.
ويتم استدعاء def order
في https://127.0.0.1:8000/order/.
ملاحظة: إن عملية تشغيل startproject
و startapp
ليست إلزامية ولكن شجعها Django بشدة. ويمكنك إنشاء / نقل الملفات والمجلدات بعد تشغيل كل أمر لراحتك في العمل.
شجرة التبعية
إليك العملية التي يعالج بها Django الطلبات الواردة من عناوين URL الواردة:
- يبحث Django عن موقع الجذر (المسار) لعناوين URL الخاصة بك في المتغير
ROOT_CONF
. - يقوم Django بتحميل ملف python الوارد في المسار المتوفر. ويحدد موقع متغير
urlpatterns
، هذه قائمة تحتوي على جميع مثيلاتdjango.urls.path()
و / أوdjango.urls.re_path()
. - في القائمة ، يقوم Django بالترتيب ويبحث عن عنوان URL مطابق.
- Python ، تستورد وتستدعي العرض (إما العرض المستند إلى الوظيفة أو العرض المستند إلى الفئة). الذي تم تمريره مع طلب HTTP.
- يعالج العرض الطلب والمعلومات التي تم تمريرها ويعيد رسالة / نموذجًا أو يعيد التوجيه إلى عرض آخر.
- إذا لم يتطابق نمط عنوان URL ، أو إذا ظهر استثناء أثناء أي نقطة في هذه العملية ، فإن Django يستدعي طريقة عرض مناسبة لمعالجة الأخطاء.
خاتمة
لقد علمنا بإمكانية إنشاء ملفات لـ Django بدون سطر الأوامر. كما تعلمنا مزايا ولبنة بناء مشروع Django. Django هي أداة رائعة في بناء المشاريع الخلفية بهدف البساطة.
يمكنك التحقق من الكود الخاص بهذا البرنامج التعليمي على GitHub.
موارد
- إدارة كلمات المرور في Django
- جانغو: الشروع في العمل
- جانغو: الإعدادات
- جانغو خفيف الوزن من قبل O'Reilly