Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu.

Bez dynamického smerovania by bola navigácia na webových stránkach náročná. Budete musieť zadať úplnú cestu každej stránky, ktorú navštívite v prehliadači. Aký hrozný používateľský zážitok.

Dynamické jednotné lokátory zdrojov (URL) vám umožňujú prejsť na rôzne stránky v aplikácii kliknutím na tlačidlo. Django uľahčuje navrhovanie dynamických adries URL. Má modul konfigurácie URL (URLconf), ktorý spája výrazy URL so zobrazeniami.

Všetok kód v URLconf je v syntaxi Pythonu, čo uľahčuje vytváranie dynamických adries URL. Poďme sa dozvedieť viac o dynamických adresách URL vytvorením projektu Django.

1. Vytvorte projekt Django

Najprv, vytvoriť projekt Django a aplikácia (aplikácia).

Pomenujte svoju aplikáciu Boma-hodinky. Aplikácia bude zhromažďovať polohu, popis a čísla obyvateľov z rôznych štvrtí. Vytvorte model s názvom NeighborHood. Pomocou modelu pridajte informácie o štvrtiach do databázy. Naučiť sa ako

instagram viewer
vytvárať modely v Django a databázu, ak nie ste oboznámení.

Ďalej vytvorte funkciu zobrazenia pre susedstvá.

2. Vytvorte funkciu zobrazenia

V Django sú zobrazenia funkcie Pythonu, ktoré prijímajú požiadavky HTTP a vracajú odpovede. Na webovej stránke, ktorú používa Django, zobrazenia vykonávajú rôzne úlohy a misie.

Ak chcete spustiť zobrazenie, musíte ho zavolať prostredníctvom adresy URL. Adresa URL je jedinečná cesta k zdroju na webe. Zdrojom môže byť stránka HTML, obrázok alebo koncový bod rozhrania API.

Vytvorte adresu URL, ktorá načíta údaje o susedstve na základe odovzdaných parametrov. Ak to chcete urobiť, môžete použiť primárny kľúč (pk) alebo Identifikácia (id) na získanie informácií. Na to použijete jednu šablónu.

Pohľady môžete vytvárať tak, že ich definujete v súbore s názvom views.py v priečinku aplikácie. Začnite importovaním súboru vykresliť funkcia od Django na zobrazenie údajov na adrese URL. Tiež importujte NeighborHood model z modely.py.

od django.skratky importovať vykresliť
od .modelky importovať susedstve

Ďalej vytvorte funkciu zobrazenia s názvom Domov ktorý zobrazuje všetky štvrte na domovskej šablóne. The NeighborHood.objects.all() funkcia prijíma údaje pre všetky štvrte z databázy.

defDomov(žiadosť):
susedstvá = NeighbourHood.objects.all()
vrátiť render (žiadosť, "home.html", {'štvrtiach':neighborhoods})

Vytvorte tiež funkciu zobrazenia pre join_hood ktorý zobrazí informácie o okolí. The NeighbourHood.objects.get (id=id) funkcia požaduje údaje podľa ID. Informácie sa potom vykreslia na šablóne.

defjoin_hood(žiadosť, id):
susedstvo = NeighbourHood.objects.get (id=id)
vrátiť render (žiadosť, 'join_hood.html', {'susedstve':neighborhood})

Neskôr, keď prejdete do štvrte, budete môcť vidieť jej profilové informácie.

3. Vytvorte dynamickú adresu URL

Teraz môžete vytvoriť dynamickú adresu URL pre funkciu zobrazenia, ktorú ste vytvorili.

od django.urls importovať cesta
od. importovať názory
od django.conf importovať nastavenie
od django.conf.urls.static importovaťstatické
oddjango.prispieť.statické súbory.urlsimportovaťstaticfiles_urlpatterns

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

aknastavenie.DEBUG:
vzory adries URL += statické(nastavenie. MEDIA_URL, document_root = nastavenia. MEDIA_ROOT)

Importovať cesta z adries URL Django na vytvorenie ciest pre zobrazenie. Potom importujte funkcie zobrazenia z views.py.

The join_hood Adresa URL má v lomených zátvorkách zástupný symbol:. Toto zachytí túto časť adresy URL a odošle ju do zobrazenia.

Uhlové zátvorky zvyčajne obsahujú špecifikáciu prevodníka. Špecifikácia môže byť reťazec (str) alebo celé číslo (int). Django tiež ponúka slimák, cesta, alebo univerzálne jedinečné identifikátory (uuid). Špecifikácia obmedzuje typ premennej alebo počet znakov odovzdaných v adrese URL do zobrazenia.

Pomenovanie adries URL pomôže identifikovať ich v šablónach.

The statické a statické súbory importuje statické súbory zobrazenia na cestách URL. Ďalšie informácie o štruktúre parametrov webovej adresy nájdete v oficiálnom Django dokumentáciu.

4. Pridajte adresu URL do šablóny

Po pridaní funkcie zobrazenia do adresy URL vytvorte šablónu HTML na zobrazenie údajov. Pomenujete šablónu join_hood.html.

{% predlžuje "base.html" %}

{% naložiť statické %}

{% block content %}
<trieda div="karta mb-3" štýl="max-width: fit content;">
<trieda div="riadok g-0">
<trieda div="col-md-4">
<trieda div="col-md-8">
<trieda div="telo karty">
<h5 trieda="titulok karty"> Vitajte!</h5>
<p trieda="karta-text pt-4"> Meno: {{neighbourhood.name}}</str>
<p trieda="karta-text pt-4"> Miesto: {{neighbourhood.location}}</str>
<p trieda="karta-text pt-4"> Popis: {{neighbourhood.description}}</str>
<p trieda="karta-text pt-4"> Tel. zdravia:{{neighbourhood.health_tell}}</str>
<p trieda="karta-text pt-4"> Číslo polície: {{neighbourhood.police_number}}</str>
<p trieda="karta-text pt-4"> Obyvatelia: {{neighbourhood. Počet}}</str>
</div>
</div>
</div>
</div>
</div>
{% koncový blok %}

Vytvorte join_hood šablónu v priečinku aplikácie na zobrazenie údajov okolia. Najprv predĺžte base.html šablónu so štýlmi (bootstrap), ktoré použijete na úpravu šablóny. Potom vykreslite premenné, ktoré zobrazia informácie na stránke.

Ďalej vytvorte a home.html šablónu, kde zobrazíte všetky štvrte.

{% predlžuje 'base.html' %}

{% naložiť statické %}

{% block content %}
<trieda div="kontajner" štýl="farba: čierna;">
<img src="{{neighborhood.hood_logo.url}}" trieda="card-img-top" alt="{{user.neighborhood.name}}">

<trieda div="riadok">
{% pre susedstvo vo štvrtiach %}
<trieda div="col-md-4">
<trieda div="karta mb-4" štýl="minimálna výška: 340 pixelov">
<img src="{{neighborhood.hood_logo.url}}" trieda="card-img-top" alt="{{user.hood.name}}">

<trieda div="telo karty">
<h5 trieda="titulok karty">
{{neighborhood.name}}
({{neighborhood.location}})
<trieda rozpätia ="ml-4">{{susedstvo. Počet}} člen{{neighborhood.members.count|pluralize}}</span>
</h5>

<p trieda="text karty">{{neighborhood.description}}</str>
<p trieda="text karty">{{neighborhood.member. Počet}}</str>

<a href="{% url 'join_hood' sused.id %}" trieda="btn btn-primárny btn-sm">Pridajte sa k Hoodovi</a>
</div>
</div>
</div>
</div>
</div>
{% koncový blok %}

Na domovskej stránke vykreslite všetky informácie, ktoré chcete zobraziť o štvrtiach. Na domovskú stránku pridáte tlačidlo a značku ukotvenia. Značka ukotvenia má adresu URL názov a ID susedstva.

Po kliknutí sa tlačidlo presunie do susedstva daného ID. Domovská šablóna sa zobrazí na adrese URL http://127.0.0.1:8000/home/. Nasledujúci obrázok znázorňuje túto stránku:

5. Otestujte dynamické smerovanie

Teraz môžete otestovať, či dynamické smerovanie funguje na šablóne. Keď kliknete na pripojiť kapucňu tlačidlo, prejde na join_hood šablóna. The join_hood šablóna zobrazuje profilové informácie o štvrti, ktorú ste vybrali.

Na adrese URL prehliadača sa zobrazí aj ID susedstva http://127.0.0.1:8000/join_hood/2/

Zobrazí sa, ako je uvedené nižšie:

Gratulujem! Vytvorili ste dynamickú adresu URL.

Prečo používať adresy URL Django?

Dynamické adresy URL sú dôležitou funkciou webových aplikácií. Django uľahčuje navrhovanie adries URL podľa vašich potrieb. Odstraňuje obmedzenia, ktoré môžete spájať s inými rámcami.

Modul URLconf je plný zdrojov podporujúcich vytváranie adries URL Django. Tiež uľahčuje poskytovanie statických súborov na šablónach a zlepšuje spracovanie chýb.

Django má ďalšie funkcie určené na optimalizáciu backendových aplikácií. Okrem iných funkcií automatizuje autentifikáciu používateľov, správu obsahu a mapy stránok.