קוראים כמוך עוזרים לתמוך ב-MUO. כאשר אתה מבצע רכישה באמצעות קישורים באתר שלנו, אנו עשויים להרוויח עמלת שותף.

ללא ניתוב דינמי, ניווט בדפי אינטרנט יהיה קשה. יהיה עליך להקליד את הנתיב המלא של כל דף בו אתה מבקר בדפדפן. איזו חווית משתמש נוראית.

מאתרי משאבים אחידים (URL), מאפשרים לנווט לדפים שונים באפליקציה בלחיצת כפתור. Django מקל על עיצוב כתובות URL דינמיות. יש לו מודול תצורת URL (URLconf) המחבר בין ביטויי כתובת URL לתצוגות.

כל הקוד ב-URLconf הוא בתחביר של Python, מה שמקל על יצירת כתובות URL דינמיות. בואו ללמוד עוד על כתובות URL דינמיות על ידי בניית פרויקט Django.

1. צור פרויקט ג'נגו

ראשון, ליצור פרויקט Django ואפליקציה (אפליקציה).

תן שם לאפליקציה שלך בומה-שעון. האפליקציה תאסוף מיקום, תיאור ומספרי תושבים משכונות שונות. צור דגם בשם שְׁכוּנָה. השתמש במודל כדי להוסיף מידע על השכונות למסד נתונים. למד איך ל ליצור דגמים ב-Django ואת מסד הנתונים אם אתה לא מכיר.

לאחר מכן, צור פונקציית תצוגה עבור השכונות.

2. צור פונקציית תצוגה

ב-Django, תצוגות הן פונקציות של Python שלוקחות בקשות HTTP ומחזירות תגובות. בדף אינטרנט המופעל על ידי Django, תצוגות מבצעות משימות ומשימות מגוונות.

instagram viewer

כדי לבצע תצוגה, עליך לקרוא לה באמצעות כתובת URL. כתובת URL היא נתיב ייחודי למשאב באינטרנט. המשאב יכול להיות דף HTML, תמונה או נקודת קצה של API.

צור כתובת אתר המאחזרת נתוני שכונה על סמך הפרמטרים שהועברו. לשם כך, אתה יכול להשתמש ב- מפתח ראשי (pk) אוֹ זיהוי (מזהה) כדי לאחזר את המידע. תשתמש בתבנית אחת כדי לעשות זאת.

ניתן ליצור תצוגות על ידי הגדרתן בקובץ שנקרא views.py בתיקיית האפליקציה. התחל בייבוא ​​של לְדַקלֵם פונקציה מ-Django להצגת נתונים בכתובת האתר. גם לייבא את שְׁכוּנָה דגם מ models.py.

מ django.shortcuts יְבוּא לְדַקלֵם
מ .מודלים יְבוּא שְׁכוּנָה

לאחר מכן, צור פונקציית תצוגה בשם בית המציג את כל השכונות בתבנית הבית. ה NeighborHood.objects.all() הפונקציה מקבלת נתונים עבור כל השכונות מהמסד.

defבית(בַּקָשָׁה):
buurten = NeighbourHood.objects.all()
החזר עיבוד (בקשה, "home.html", {'שכונות':שכונות})

כמו כן, צור פונקציית תצוגה עבור הצטרפות_הוד שיציג מידע של שכונה. ה NeighbourHood.objects.get (id=id) הפונקציה מבקשת נתונים לפי המזהה. לאחר מכן, המידע מוצג על גבי תבנית.

defהצטרפות_הוד(בקשה, מזהה):
שכונה = NeighbourHood.objects.get (id=id)
החזר עיבוד (בקשה, 'join_hood.html', {'שְׁכוּנָה':שְׁכוּנָה})

מאוחר יותר, כאשר אתה מנווט לשכונה, תוכל לראות את פרטי הפרופיל שלה.

3. צור כתובת אתר דינמית

כעת תוכל ליצור כתובת URL דינמית עבור פונקציית התצוגה שיצרת.

מ django.urls יְבוּא נָתִיב
מ. יְבוּא צפיות
מ django.conf יְבוּא הגדרות
מ django.conf.urls.static יְבוּאסטָטִי
מג'נגו.contrib.staticfiles.כתובות אתריםיְבוּאstaticfiles_urlpatterns

urlpatterns = [
נתיב ('בית', views.home, name='בית'),
נתיב ('הצטרפות/<str: id>/', views.join_hood, name='הצטרפות_הוד'),
]

אםהגדרות.לנפות:
דפוסי urlpatterns += סטָטִי(הגדרות. MEDIA_URL, document_root = הגדרות. MEDIA_ROOT)

יְבוּא נָתִיב מכתובות URL של Django ליצירת נתיבים עבור התצוגה. לאחר מכן ייבא את פונקציות התצוגה מ views.py.

ה הצטרפות_הוד כתובת האתר כוללת מציין מיקום בסוגריים זווית:. זה לוכד את החלק הזה של כתובת האתר ושולח אותו לתצוגה.

סוגרי הזווית כוללים בדרך כלל מפרט ממיר. המפרט יכול להיות מחרוזת (str) או מספר שלם (int). גם ג'נגו מציע שבלול, נתיב, או מזהים ייחודיים אוניברסליים (uuid). המפרט מגביל את סוג המשתנה או מספר התווים המועברים בכתובת ה-URL לתצוגה.

מתן שם לכתובות האתרים יעזור לזהות אותן בתבניות.

ה סטָטִי ו קבצים סטטיים מייבא קבצי תצוגה סטטיים בנתיבי כתובת האתר. למידע נוסף על איך לבנות פרמטרים של כתובות אתרים ברשמי ג'נגו תיעוד.

4. הוסף כתובת אתר לתבנית

לאחר שהוספת את פונקציית התצוגה לכתובת האתר, צור תבנית HTML להצגת הנתונים. תן שם לתבנית join_hood.html.

{% מרחיב "base.html" %}

טעינה של {% סטָטִי %}

{% block content %}
<div class="כרטיס mb-3" סגנון="max-width: תוכן מתאים;">
<div class="שורה g-0">
<div class="col-md-4">
<div class="col-md-8">
<div class="גוף כרטיס">
<h5 class="כותרת כרטיס"> ברוך הבא!</h5>
<p class="כרטיס-טקסט pt-4"> שם: {{neighbourhood.name}}</p>
<p class="כרטיס-טקסט pt-4"> מיקום: {{neighbourhood.location}}</p>
<p class="כרטיס-טקסט pt-4"> תיאור: {{neighbourhood.description}}</p>
<p class="כרטיס-טקסט pt-4"> טלפון בריאות:{{neighbourhood.health_tell}}</p>
<p class="כרטיס-טקסט pt-4"> מספר משטרה: {{neighbourhood.police_number}}</p>
<p class="כרטיס-טקסט pt-4"> תושבים: {{ שכונה. לספור}}</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

צור את הצטרפות_הוד תבנית בתיקיית האפליקציה כדי להציג את נתוני השכונה. ראשית, הארך את base.html תבנית עם גיליונות סגנונות (bootstrap) שבהם תשתמש לסגנון התבנית. לאחר מכן, רנדר את המשתנים שיציגו את המידע בדף.

לאחר מכן, צור א home.html תבנית שבה תציג את כל השכונות.

{% מרחיב 'base.html' %}

טעינה של {% סטָטִי %}

{% block content %}
<div class="מְכוֹלָה" סגנון="צבע שחור;">
<img src="{{neighborhood.hood_logo.url}}" class="card-img-top" alt="{{user.neighborhood.name}}">

<div class="שׁוּרָה">
{% עבור שכונה בשכונות %}
<div class="col-md-4">
<div class="כרטיס mb-4" סגנון="גובה מינימלי: 340 פיקסלים">
<img src="{{neighborhood.hood_logo.url}}" class="card-img-top" alt="{{user.hood.name}}">

<div class="גוף כרטיס">
<h5 class="כותרת כרטיס">
{{neighborhood.name}}
({{neigborhood.location}})
<span class="ml-4">{{שְׁכוּנָה. Count}} חבר{{neighborhood.members.count|pluralize}}</span>
</h5>

<p class="טקסט-כרטיס">{{neighborhood.description}}</p>
<p class="טקסט-כרטיס">{{neigborhood.member. לספור}}</p>

<a href="{% url 'הצטרפות_הוד' district.id %}" class="btn btn-primary btn-sm">הצטרף להוד<>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

בעמוד הבית, רנדר את כל המידע שברצונך להציג על השכונות. תוסיף כפתור ותגית עוגן בדף הבית. לתג העוגן יש את כתובת האתר שֵׁם ו מזהה שכונה.

לאחר לחיצה, הלחצן מנווט לשכונה של אותו זיהוי. תבנית הבית מופיעה בכתובת האתר http://127.0.0.1:8000/home/. התמונה למטה מדגימה את העמוד הזה:

5. בדוק ניתוב דינמי

כעת, אתה יכול לבדוק אם הניתוב הדינמי עובד על התבנית. כאשר אתה לוחץ על להצטרף למכסה המנוע לחצן, הוא מנווט אל הצטרפות_הוד תבנית. ה הצטרפות_הוד תבנית מציגה מידע על הפרופיל על השכונה שבחרת.

תראה גם את מזהה השכונה המוצג בכתובת האתר של הדפדפן http://127.0.0.1:8000/join_hood/2/

זה יופיע כמוצג להלן:

מזל טוב! יצרת כתובת אתר דינמית.

למה להשתמש בכתובות URL של Django?

כתובות URL דינמיות הן תכונה חשובה ביישומי אינטרנט. Django מקל על עיצוב כתובות אתרים בהתאם לצרכים שלך. זה מסיר את המגבלות שאתה עשוי לשייך למסגרות אחרות.

מודול URLconf מלא במשאבים התומכים ביצירת כתובת URL של Django. זה גם מקל על הגשת קבצים סטטיים על תבניות ומשפר את הטיפול בשגיאות.

ל-Django יש תכונות אחרות שנועדו לייעל יישומי אחורי. זה גורם לאוטומטיות של אימות משתמשים, ניהול תוכן ומפות אתרים, בין היתר.