Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk.

Dinamikus útválasztás nélkül nehéz lenne a weboldalakon navigálni. A böngészőben minden meglátogatott oldal teljes elérési útját be kell írnia. Milyen szörnyű felhasználói élmény.

A dinamikus egységes erőforrás-keresők (URL-ek) segítségével egyetlen gombnyomással navigálhat egy alkalmazás különböző oldalaira. A Django megkönnyíti a dinamikus URL-ek tervezését. Van egy URL-konfigurációs modulja (URLconf), amely összekapcsolja az URL-kifejezéseket a nézetekkel.

Az URLconf összes kódja Python szintaxisban van, ami megkönnyíti a dinamikus URL-ek létrehozását. Tudjon meg többet a dinamikus URL-ekről egy Django projekt felépítésével.

1. Hozzon létre egy Django projektet

Első, hozzon létre egy Django projektet és alkalmazás (app).

Nevezze el az alkalmazást Boma-óra. Az alkalmazás összegyűjti a helyszínt, a leírást és a lakószámokat a különböző környékekről. Hozzon létre egy modellt, melynek neve

instagram viewer
Szomszédság. Használja a modellt a környékekkel kapcsolatos információk hozzáadásához egy adatbázishoz. Megtanulni hogyan hozzon létre modelleket a Django-ban és az adatbázist, ha nem ismerné.

Ezután hozzon létre egy nézet függvényt a környékekhez.

2. Hozzon létre egy Nézet funkciót

A Django-ban a nézetek Python-függvények, amelyek HTTP-kéréseket fogadnak és válaszokat adnak vissza. A Django által üzemeltetett weboldalon a nézetek különféle feladatokat és küldetéseket hajtanak végre.

Egy nézet végrehajtásához meg kell hívnia egy URL-en keresztül. Az URL egy erőforrás egyedi elérési útja a weben. Az erőforrás lehet HTML-oldal, kép vagy API-végpont.

Hozzon létre egy URL-t, amely lekéri a szomszédsági adatokat az átadott paraméterek alapján. Ehhez használhatja a elsődleges kulcs (pk) vagy Azonosítás (azonosító) az információ lekéréséhez. Ehhez egy sablont fog használni.

Nézeteket úgy hozhat létre, hogy meghatározza azokat egy nevű fájlban views.py az alkalmazás mappájában. Kezdje azzal, hogy importálja a Vakol funkciót a Django-tól az adatok megjelenítéséhez az URL-en. Szintén importálja a Szomszédság modelltől modellek.py.

tól től django.parancsikonok import Vakol
tól től .modellek import Szomszédság

Ezután hozzon létre egy nézet függvényt itthon amely megjeleníti az összes környéket az otthoni sablonon. A NeighborHood.objects.all() függvény az összes környékre vonatkozó adatokat fogadja az adatbázisból.

defitthon(kérés):
szomszédságok = NeighbourHood.objects.all()
render visszaküldése (kérés, "home.html", {'városrészek':neighborhoods})

Hozzon létre egy nézet funkciót is a számára join_hood amely megjeleníti a környék információit. A NeighbourHood.objects.get (id=id) függvény az azonosítónak megfelelő adatokat kér. Ezután az információ egy sablonon jelenik meg.

defjoin_hood(kérés, azonosító):
szomszédság = NeighbourHood.objects.get (id=id)
render visszaküldése (kérés, 'join_hood.html', {'szomszédság':szomszédság})

Később, amikor egy környékre navigál, láthatja annak profiladatait.

3. Hozzon létre egy dinamikus URL-t

Mostantól létrehozhat egy dinamikus URL-t a létrehozott nézetfunkcióhoz.

tól től django.urls import pálya
tól től. import nézetek
tól től django.conf import beállítások
tól től django.conf.urls.static importstatikus
tól tőldjango.hozzájárulás.staticfiles.urlsimportstaticfiles_urlpatterns

urlpatterns = [
pálya ('itthon', views.home, name='itthon'),
pálya ('join_hood/<str: id>/', views.join_hood, name='join_hood'),
]

habeállítások.DEBUG:
urlminták += statikus(beállítások. MEDIA_URL, document_root = beállítások. MEDIA_ROOT)

Importálás pálya a Django URL-ekből a nézet elérési útjainak létrehozásához. Ezután importálja a nézet függvényeket innen views.py.

A join_hood Az URL helyőrzője szögletes zárójelben található:. Ez rögzíti az URL-nek azt a részét, és elküldi a nézetbe.

A szögtartókonzolok általában tartalmaznak egy átalakító specifikációt. A specifikáció lehet karakterlánc (str) vagy egész szám (int). Django is kínál csiga, ösvény, vagy univerzálisan egyedi azonosítók (uuid). A specifikáció korlátozza a változó típusát vagy az URL-ben a nézetnek átadott karakterek számát.

Az URL-címek elnevezése segít azonosítani őket a sablonokon.

A statikus és statikus fájlok Az importálás statikus fájlokat jelenít meg az URL elérési útjain. Tudjon meg többet az URL-paraméterek felépítéséről a hivatalos oldalon Django dokumentáció.

4. URL hozzáadása egy sablonhoz

Miután hozzáadta a nézet funkciót az URL-hez, hozzon létre egy HTML-sablont az adatok megjelenítéséhez. Megnevezed a sablont join_hood.html.

{% kiterjeszti "base.html" %}

{% Betöltés statikus %}

{% blokktartalom %}
<div class="kártya mb-3" stílus="max-szélesség: illeszkedő tartalom;">
<div class="sor g-0">
<div class="col-md-4">
<div class="col-md-8">
<div class="kártya-test">
<h5 osztály="kártya-cím"> Üdvözöljük!</h5>
<p osztály="kártya-szöveg pt-4"> Név: {{neighbourhood.name}}</p>
<p osztály="kártya-szöveg pt-4"> Helyszín: {{neighbourhood.location}}</p>
<p osztály="kártya-szöveg pt-4"> Leírás: {{neighbourhood.description}}</p>
<p osztály="kártya-szöveg pt-4"> Egészségügyi Tel.:{{neighbourhood.health_tell}}</p>
<p osztály="kártya-szöveg pt-4"> Rendőrségi szám: {{neighbourhood.police_number}}</p>
<p osztály="kártya-szöveg pt-4"> Lakosok: {{környék. Számol}}</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Hozd létre a join_hood sablont az alkalmazás mappájában a környék adatainak megjelenítéséhez. Először hosszabbítsa meg a base.html sablon stíluslapokkal (bootstrap), amelyeket a sablon stílusához fog használni. Ezután adja meg azokat a változókat, amelyek megjelenítik az információkat az oldalon.

Ezután hozzon létre a home.html sablon, ahol az összes környéket megjeleníti.

{% kiterjeszti 'base.html' %}

{% Betöltés statikus %}

{% blokktartalom %}
<div class="tartály" stílus="fekete szín;">
<img src="{{neighborhood.hood_logo.url}}" osztály="card-img-top" alt="{{user.neighborhood.name}}">

<div class="sor">
{% a szomszédságban a %}
<div class="col-md-4">
<div class="kártya mb-4" stílus="Minimális magasság: 340 képpont">
<img src="{{neighborhood.hood_logo.url}}" osztály="card-img-top" alt="{{user.hood.name}}">

<div class="kártya-test">
<h5 osztály="kártya-cím">
{{szomszédság.név}}
({{neighborhood.location}})
<span class="ml-4">{{szomszédság. Count}} tag{{neighborhood.members.count|pluralize}}</span>
</h5>

<p osztály="kártya-szöveg">{{neighborhood.description}}</p>
<p osztály="kártya-szöveg">{{szomszédság.tag. Számol}}</p>

<a href="{% url 'join_hood' szomszédság.azonosító %}" osztály="btn btn-elsődleges btn-sm">Csatlakozz Hoodhoz</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

A kezdőlapon jelenítse meg az összes olyan információt, amelyet meg szeretne jeleníteni a környékekkel kapcsolatban. Hozzá kell adni egy gombot és egy horgonycímkét a kezdőlaphoz. A horgonycímke URL-t tartalmaz név és környék azonosítója.

Ha rákattint, a gomb az adott azonosító szomszédságába lép. A kezdőlap sablon megjelenik az URL-címen http://127.0.0.1:8000/home/. Az alábbi kép ezt az oldalt mutatja be:

5. Tesztelje a dinamikus útválasztást

Most tesztelheti, hogy a dinamikus útválasztás működik-e a sablonon. Amikor rákattint a csatlakozzon a motorháztetőhöz gombot, a következőre navigál join_hood sablon. A join_hood sablon profilinformációkat jelenít meg a kiválasztott környékről.

A környék azonosítója is megjelenik a böngésző URL-címén http://127.0.0.1:8000/join_hood/2/

Az alábbiak szerint fog megjelenni:

Gratulálunk! Létrehozott egy dinamikus URL-t.

Miért érdemes Django URL-eket használni?

A dinamikus URL-ek fontos funkciói a webalkalmazásokban. A Django megkönnyíti az URL-ek megtervezését az Ön igényei szerint. Eltávolítja azokat a korlátozásokat, amelyeket más keretrendszerekhez társíthat.

Az URLconf modul tele van a Django URL létrehozását támogató erőforrásokkal. Ezenkívül megkönnyíti a statikus fájlok sablonokon való kiszolgálását, és javítja a hibakezelést.

A Django más funkciókkal is rendelkezik a háttéralkalmazások optimalizálására. Automatizálja a felhasználói hitelesítést, a tartalomkezelést és a webhelytérképeket, többek között.