القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا ، فقد نربح عمولة تابعة.
بدون التوجيه الديناميكي ، سيكون التنقل في صفحات الويب أمرًا صعبًا. سيكون عليك كتابة المسار الكامل لكل صفحة تزورها على المتصفح. يا لها من تجربة مستخدم رهيبة.
تسمح لك محددات مواقع الويب الديناميكية الموحدة (URLs) بالانتقال إلى صفحات مختلفة على أحد التطبيقات بنقرة زر واحدة. يجعل Django من السهل تصميم عناوين URL ديناميكية. يحتوي على وحدة تكوين عنوان URL (URLconf) التي تربط تعبيرات URL بالطرق.
كل التعليمات البرمجية في URLconf موجودة في بناء جملة Python ، مما يجعل من السهل إنشاء عناوين URL ديناميكية. دعنا نتعلم المزيد عن عناوين URL الديناميكية من خلال بناء مشروع Django.
1. قم بإنشاء مشروع Django
أولاً، إنشاء مشروع Django والتطبيق (التطبيق).
اسم التطبيق الخاص بك بوما ووتش. سيجمع التطبيق الموقع والوصف وأرقام المقيمين من مختلف الأحياء. قم بإنشاء نموذج باسم حيّ. استخدم النموذج لإضافة معلومات حول الأحياء إلى قاعدة بيانات. تعلم كيف إنشاء نماذج في Django وقاعدة البيانات إذا كنت غير مألوف.
بعد ذلك ، قم بإنشاء وظيفة عرض للأحياء.
2. قم بإنشاء وظيفة عرض
في Django ، العروض هي وظائف Python التي تأخذ طلبات HTTP وتعيد الردود. على صفحة ويب مدعومة من Django ، تؤدي المشاهدات مهامًا ومهامًا متنوعة.
لتنفيذ عرض ، يجب عليك استدعائه عبر عنوان URL. عنوان URL هو مسار فريد لمورد على الويب. يمكن أن يكون المورد صفحة HTML أو صورة أو نقطة نهاية API.
قم بإنشاء عنوان URL يسترد بيانات الحي بناءً على المعلمات التي تم تمريرها. للقيام بذلك ، يمكنك استخدام المفتاح الأساسي (PK) أو تحديد الهوية لاسترداد المعلومات. ستستخدم قالبًا واحدًا للقيام بذلك.
يمكنك إنشاء طرق عرض بتعريفها في ملف يسمى views.py في مجلد التطبيق. ابدأ باستيراد ملف يجعل وظيفة من Django لعرض البيانات على عنوان URL. قم أيضًا باستيراد ملف حيّ نموذج من نماذج.
من django.shortcuts يستورد يجعل
من .عارضات ازياء يستورد حيّ
بعد ذلك ، قم بإنشاء وظيفة عرض تسمى بيت يعرض جميع الأحياء في نموذج المنزل. ال NeighborHood.objects.all () وظيفة يتلقى البيانات لجميع الأحياء من قاعدة البيانات.
defبيت(طلب):
الأحياء = NeighbourHood.objects.all ()
عودة تقديم (طلب ، "home.html", {'أحياء':أحياء})
أيضًا ، قم بإنشاء وظيفة عرض لـ الانضمام من شأنها أن تعرض معلومات الحي. ال NeighbourHood.objects.get (id = id) وظيفة طلبات البيانات وفقا للمعرف. ثم يتم تقديم المعلومات في قالب.
defالانضمام(طلب معرف):
الحي = NeighbourHood.objects.get (id = id)
عودة تقديم (طلب ، 'Join_hood.html', {'حيّ':حيّ})
في وقت لاحق ، عندما تنتقل إلى حي ، ستتمكن من رؤية معلومات ملفه الشخصي.
3. قم بإنشاء عنوان URL ديناميكي
يمكنك الآن إنشاء عنوان URL ديناميكي لوظيفة العرض التي قمت بإنشائها.
من django.urls يستورد طريق
من. يستورد الآراء
من django.conf يستورد إعدادات
من django.conf.urls.static يستوردثابتة
مندجانغو.contrib.staticfiles.urlsيستوردstaticfiles_urlpatternsأنماط عنوان url = [
طريق ('بيت'، views.home، name ='بيت'),
طريق ('انضمام /<str: معرف>/'، views.join_hood، name ='الانضمام'),
]
لوإعدادات.DEBUG:
أنماط عنوان url + = ثابتة(إعدادات. MEDIA_URL ، document_root = إعدادات. MEDIA_ROOT)
يستورد طريق من عناوين URL لـ Django لإنشاء مسارات للعرض. ثم قم باستيراد وظائف العرض من views.py.
ال الانضمام يحتوي URL على عنصر نائب بين أقواس زاوية:. يلتقط هذا الجزء من عنوان URL ويرسله إلى العرض.
تتضمن أقواس الزاوية عادةً مواصفات المحول. قد تكون المواصفات إما سلسلة (str) أو عدد صحيح (int). كما تقدم Django سبيكة ، مسار، أو المعرفات الفريدة عالميًا (uuid). تحدد المواصفات نوع المتغير أو عدد الأحرف التي تم تمريرها في عنوان URL إلى طريقة العرض.
سيساعد إعطاء اسم لعناوين URL في التعرف عليها في القوالب.
ال ثابتة و الملفات الثابتة يستورد ملفات العرض الثابتة على مسارات URL. تعرف على المزيد حول كيفية تنظيم معلمات URL في المسؤول جانغو توثيق.
4. إضافة URL إلى قالب
بمجرد إضافة وظيفة العرض إلى عنوان URL ، قم بإنشاء قالب HTML لعرض البيانات. قم بتسمية القالب Join_hood.html.
يمتد {٪ "base.html" %}
{٪ حمولة ثابتة %}
{٪ حظر المحتوى٪}
<فئة div ="بطاقة mb-3" النمط ="أقصى عرض: محتوى مناسب ؛">
<فئة div ="الصف g-0">
<فئة div ="العمود- MD-4">
<فئة div ="العمود- MD-8">
<فئة div ="بطاقة الجسم">
<فئة h5 ="عنوان البطاقة"> مرحباً!</h5>
<فئة ع ="بطاقة نصية pt-4"> الاسم: {{neighbourhood.name}}</ ص>
<فئة ع ="بطاقة نصية pt-4"> الموقع: {{neighbourhood.location}}</ ص>
<فئة ع ="بطاقة نصية pt-4"> الوصف: {{neighbourhood.description}}</ ص>
<فئة ع ="بطاقة نصية pt-4"> هاتف الصحة: {{neighbourhood.health_tell}}</ ص>
<فئة ع ="بطاقة نصية pt-4"> رقم الشرطة: {{neighbourhood.police_number}}</ ص>
<فئة ع ="بطاقة نصية pt-4"> السكان: {{حي. عدد}}</ ص>
</div>
</div>
</div>
</div>
</div>
{٪ endblock٪}
قم بإنشاء ملف الانضمام نموذج في مجلد التطبيق لعرض بيانات الحي. أولاً ، قم بتمديد base.html قالب مع أوراق الأنماط (التمهيد) التي ستستخدمها لتصميم القالب. بعد ذلك ، اعرض المتغيرات التي ستعرض المعلومات على الصفحة.
بعد ذلك ، قم بإنشاء ملف home.html نموذج حيث ستعرض جميع الأحياء.
يمتد {٪ 'base.html' %}
{٪ حمولة ثابتة %}
{٪ حظر المحتوى٪}
<فئة div ="حاوية" النمط ="لون أسود؛">
<img src ="{{Neighborhood.hood_logo.url}}" فئة ="بطاقة صور أعلى" بديل ="{{user.neictures.name}}"><فئة div ="صف">
{٪ للحي في الأحياء٪}
<فئة div ="العمود- MD-4">
<فئة div ="بطاقة mb-4" النمط ="الحد الأدنى للارتفاع: 340 بكسل">
<img src ="{{Neighborhood.hood_logo.url}}" فئة ="بطاقة صور أعلى" بديل ="{{user.hood.name}}"><فئة div ="بطاقة الجسم">
<فئة h5 ="عنوان البطاقة">
{{Neighborhood.name}}
({{Neighborhood.location}})
<تمتد فئة ="مل -4">{{حيّ. عدد}} عضو {{Neighborhood.members.count | pluralize}}</span>
</h5><فئة ع ="بطاقة نصية">{{Neighborhood.description}}</ ص>
<فئة ع ="بطاقة نصية">{{حي. عدد}}</ ص>
<أ href ="{٪ url 'الانضمام' حي. معرّف٪}" فئة ="btn- ابتدائي btn-sm">انضم إلى هود</أ>
</div>
</div>
</div>
</div>
</div>
{٪ endblock٪}
في الصفحة الرئيسية ، اعرض جميع المعلومات التي تريد عرضها حول الأحياء. ستقوم بإضافة زر وعلامة ربط في الصفحة الرئيسية. علامة الارتساء لها عنوان URL اسم و معرف الحي.
عند النقر عليه ، ينتقل الزر إلى المنطقة المجاورة لهذا المعرف. يظهر القالب الرئيسي على عنوان URL http://127.0.0.1:8000/home/. الصورة أدناه توضح هذه الصفحة:
5. اختبار التوجيه الديناميكي
الآن ، يمكنك اختبار ما إذا كان التوجيه الديناميكي يعمل على القالب. عند النقر فوق ملف الانضمام هود الزر ، فإنه ينتقل إلى ملف الانضمام نموذج. ال الانضمام يعرض النموذج معلومات الملف الشخصي حول الحي الذي حددته.
سترى أيضًا معرف الحي المعروض على عنوان URL للمتصفح http://127.0.0.1:8000/join_hood/2/
سيظهر كما هو موضح أدناه:
تهانينا! لقد قمت بإنشاء عنوان URL ديناميكي.
لماذا تستخدم عناوين مواقع Django؟
تعد عناوين URL الديناميكية ميزة مهمة في تطبيقات الويب. يجعل Django من السهل تصميم عناوين URL وفقًا لاحتياجاتك. يزيل القيود التي قد تربطها بأطر أخرى.
وحدة URLconf مليئة بالموارد التي تدعم إنشاء عنوان URL لـ Django. كما أنه يسهل خدمة الملفات الثابتة على القوالب ويحسن معالجة الأخطاء.
لدى Django ميزات أخرى مصممة لتحسين تطبيقات الواجهة الخلفية. يقوم بأتمتة مصادقة المستخدم وإدارة المحتوى وخرائط الموقع ، من بين ميزات أخرى.