كيفية استخدام التوجيه الديناميكي مع Django

كيفية استخدام التوجيه الديناميكي مع Django
القراء مثلك يساعدون في دعم 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. قم أيضًا باستيراد ملف حي نموذج من نماذج .

from django.shortcuts import render 
from .models import NeighbourHood

بعد ذلك ، قم بإنشاء وظيفة عرض تسمى الصفحة الرئيسية يعرض جميع الأحياء في نموذج المنزل. ال NeighborHood.objects.all () وظيفة يتلقى البيانات لجميع الأحياء من قاعدة البيانات.

def home(request): 
neighborhoods = NeighbourHood.objects.all()
return render (request, "home.html", {'neighborhoods':neighborhoods})

أيضًا ، قم بإنشاء وظيفة عرض لـ الانضمام من شأنها أن تعرض معلومات الحي. ال NeighbourHood.objects.get (id = id) وظيفة طلبات البيانات وفقا للمعرف. ثم يتم تقديم المعلومات في قالب.

def join_hood(request, id): 
neighborhood = NeighbourHood.objects.get(id=id)
return render (request, 'join_hood.html', {'neighborhood':neighborhood})

في وقت لاحق ، عندما تنتقل إلى حي ، ستتمكن من رؤية معلومات ملفه الشخصي.

أفضل تطبيقات VR المجانية للأندرويد

3. قم بإنشاء عنوان URL ديناميكي

يمكنك الآن إنشاء عنوان URL ديناميكي لوظيفة العرض التي قمت بإنشائها.

from django.urls import path 
from . import views
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = [
path ('home', views.home, name='home'),
path ('join_hood/<str:id>/', views.join_hood, name='join_hood'),
]

if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

يستورد طريق من عناوين URL لـ Django لإنشاء مسارات للعرض. ثم قم باستيراد وظائف العرض من views.py .

ال الانضمام يحتوي URL على عنصر نائب بين أقواس زاوية: . يلتقط هذا الجزء من عنوان URL ويرسله إلى العرض.

تتضمن أقواس الزاوية عادةً مواصفات المحول. قد تكون المواصفات إما سلسلة (str) أو عدد صحيح (int). كما تقدم Django سبيكة ، مسار ، أو المعرفات الفريدة عالميًا (uuid). تحدد المواصفات نوع المتغير أو عدد الأحرف التي تم تمريرها في عنوان URL إلى طريقة العرض.

سيساعد إعطاء اسم لعناوين URL في التعرف عليها في القوالب.

ال ثابتة و الملفات الثابتة يستورد ملفات العرض الثابتة على مسارات URL. تعرف على المزيد حول كيفية تنظيم معلمات URL في المسؤول جانغو توثيق.

4. إضافة URL إلى قالب

بمجرد إضافة وظيفة العرض إلى عنوان URL ، قم بإنشاء قالب HTML لعرض البيانات. قم بتسمية القالب Join_hood.html .

{% extends "base.html" %} 

{% load static %}

{% block content %}
<div class="card mb-3" style="max-width:fit content;">
<div class="row g-0">
<div class="col-md-4">
<div class="col-md-8" >
<div class="card-body">
<h5 class="card-title"> Welcome!</h5>
<p class="card-text pt-4"> Name: {{neighbourhood.name}}</p>
<p class="card-text pt-4"> Location: {{neighbourhood.location}}</p>
<p class="card-text pt-4"> Description: {{neighbourhood.description}}</p>
<p class="card-text pt-4"> Health Tel:{{neighbourhood.health_tell}}</p>
<p class="card-text pt-4"> Police Number: {{neighbourhood.police_number}}</p>
<p class="card-text pt-4"> Residents : {{neighbourhood.Count}}</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

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

بعد ذلك ، قم بإنشاء ملف home.html نموذج حيث ستعرض جميع الأحياء.

{% extends 'base.html' %} 

{% load static %}

{% block content %}
<div class="container" style="color:black;">
<img src="{{neighborhood.hood_logo.url}}" class="card-img-top" alt="{{user.neighborhood.name}}">

<div class="row">
{% for neighborhood in neighborhoods %}
<div class="col-md-4">
<div class="card mb-4" style="min-height:340px">
<img src="{{neighborhood.hood_logo.url}}" class="card-img-top" alt="{{user.hood.name}}">

<div class="card-body">
<h5 class="card-title">
{{neighborhood.name}}
({{neighborhood.location}})
<span class="ml-4">{{neighborhood.Count}} member{{neighborhood.members.count|pluralize}}</span>
</h5>

<p class="card-text">{{neighborhood.description}}</p>
<p class="card-text">{{neighborhood.member.Count}}</p>

<a href="{% url 'join_hood' neighborhood.id %}" class="btn btn-primary btn-sm">Join Hood</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

في الصفحة الرئيسية ، اعرض جميع المعلومات التي تريد عرضها حول الأحياء. ستقوم بإضافة زر وعلامة ربط في الصفحة الرئيسية. علامة الارتساء لها عنوان URL اسم و معرف الحي .

عند النقر عليه ، ينتقل الزر إلى المنطقة المجاورة لهذا المعرف. يظهر قالب الصفحة الرئيسية في عنوان URL http://127.0.0.1:8000/home/. The picture below demonstrates this page:

  الصفحة الرئيسية تعرض جميع الأحياء

5. اختبار التوجيه الديناميكي

الآن ، يمكنك اختبار ما إذا كان التوجيه الديناميكي يعمل على القالب. عند النقر فوق ملف الانضمام هود الزر ، فإنه ينتقل إلى ملف الانضمام قالب. ال الانضمام يعرض النموذج معلومات الملف الشخصي حول الحي الذي حددته.

سترى أيضًا معرف الحي المعروض على المتصفح URL http://127.0.0.1:8000/join_hood/2/

سيظهر كما هو موضح أدناه:

  تعرض صفحة Join_hood تفاصيل الحي على المتصفح

تهانينا! لقد قمت بإنشاء عنوان URL ديناميكي.

لماذا تستخدم عناوين مواقع Django؟

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

وحدة URLconf مليئة بالموارد التي تدعم إنشاء عنوان URL لـ Django. كما أنه يسهل خدمة الملفات الثابتة على القوالب ويحسن معالجة الأخطاء.

لدى Django ميزات أخرى مصممة لتحسين تطبيقات الواجهة الخلفية. يقوم بأتمتة مصادقة المستخدم وإدارة المحتوى وخرائط الموقع ، من بين ميزات أخرى.