Django URL Dispatcher وتوجيه طلبات المستخدم

26 مايو، 2023 * تيتو 4 تك

تعد Django URL dispatcher أحد مكونات إطار العمل Django التي تهدف إلى تحويل طلبات المستخدم إلى العرض المناسب. يعمل موجه URL عندما يتلقى Django طلبًا من المستخدم، ويستخدم النمط المطابق للعناوين الفرعية المحددة في URL لتحديد العرض المرتبط بها.

كيفية عمل Django URL dispatcher

تعريف نمط URL:

يتم تعريف نمط URL في ملف `urls.py` في مجلد المشروع الخاص بك. يعد هذا الملف مسؤولًا عن توجيه الطلبات إلى العروض المناسبة. في هذا الملف، يتم استيراد وظيفة `path()` أو `re_path()` من وحدة `django.urls` لتحديد النمط الخاص بكل عرض. يتكون النمط من سلسلة نصية تحدد العنوان الفرعي للصفحة واسم العرض المرتبط بها.

تحويل الطلبات:

بمجرد تحديد نمط URL في ملف `urls.py`، سيقوم Django بالتحقق من العنوان الفرعي للصفحة الواردة في طلب المستخدم ومقارنتها مع النمط المحدد. إذا وجدت تطابقًا، سيتم توجيه الطلب إلى العرض المرتبط بهذا النمط.

استخدام عروض العرض:

 يُعرف العرض في Django باستخدام وظائف العرض (View Functions) أو أصناف العرض (View Classes). تعتبر وظائف العرض وأصناف العرض المسؤولة عن معالجة الطلبات واستعراض البيانات واستجابة للمستخدم. يمكنك تعريف الوظائف أو الأصناف في نفس ملف `urls.py` أو تستورد الوظائف أو الأصناف من وحدات أخرى.

إرجاع الاستجابة:

بعد معالجة الطلب في العرض، يجب على العرض إرجاع استجابة تُرسل إلى المستخدم. يمكن أن تكون الاستجابة عبارة عن صفحة HTML مُعدة مسبقًا، أو استجابة JSON، أو أي شكل آخر يعتمد على متطلبات تطبيقك.

الأمثلة التوضيحية لكيفية عمل Django URL Dispatcher

 توجيه الطلب إلى صفحة رئيسية:

في ملف `urls.py`، يمكنك تعريف نمط URL لتوجيه الطلبات إلى صفحة الصفحة الرئيسية في تطبيقك:

from django.urls import path
from .views import home_view
   urlpatterns = [
       path('', home_view, name='home'),
   ]

عند الوصول إلى العنوان الأساسي لتطبيقك، ستتم إعادة التوجيه إلى العرض `home_view` الذي يتم تعريفه في ملف العروض.

استخدام معرفات العنوان الفرعي:

 يمكنك استخدام معرفات (ID) في النمط URL لتحديد العناصر الفردية في تطبيقك. على سبيل المثال، إذا كان لديك موديل يسمى `Article` وترغب في عرض تفاصيل مقالة معينة، يمكنك استخدام معرف العنوان الفرعي لتحقيق ذلك:

 from django.urls import path
from .views import article_detail_view
   urlpatterns = [
       path('article/<int:pk>/', article_detail_view, name='article_detail'),
   ]

عندما يكون لديك عنوان URL مثل "/article/1/"، ستتم إعادة التوجيه إلى العرض `article_detail_view` مع معرف المقالة المحددة كمعلمة.

تقسيم المسارات إلى ملفات `urls.py` متعددة:

 لتنظيم بنية المسارات في تطبيقك، يمكنك تقسيمها إلى ملفات `urls.py` متعددة. على سبيل المثال، يمكنك إنشاء ملف `articles/urls.py` لإدارة جميع المسارات المتعلقة بالمقالات.

في ملف `urls.py` الرئيسي:
from django.urls import include, path
   urlpatterns = [
       path('articles/', include('articles.urls')),
   ]

 

في ملف `articles/urls.py`:
 from django.urls import path

from .views import article_list_view, article_create_view
   urlpatterns = [
       path('', article_list_view, name='article_list'),
       path('create/', article_create_view, name='article_create'),
   ]

بهذه الطريقة، يمكنك تنظيم مسارات التطبيق الخاص بالمقالات بشكل منفصل في ملف `articles/urls.py`.

يمكن استخدام Django URL dispatcher لتوجيه الطلبات إلى أي عدد من العروض والنماذج والوظائف في تطبيقك. يوفر Django أيضًا إمكانيات متقدمة مثل استخدام المعرفات (IDs) في النمط الخاص بالعنوان الفرعي للصفحة وتمريرها إلى العرض للتلاعب في البيانات. بالإضافة إلى ذلك، يمكن تجميع نماذج العناوين الفرعية وتوزيعها في ملفات `urls.py` متعددة لتنظيم بنية مسارات التطبيق بشكل أفضل.

التسميات