Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo.

Brez dinamičnega usmerjanja bi bilo krmarjenje po spletnih straneh težavno. V brskalnik bi morali vnesti celotno pot vsake strani, ki jo obiščete. Kakšna grozna uporabniška izkušnja.

Dinamični enotni lokatorji virov (URL-ji) vam omogočajo krmarjenje na različne strani v aplikaciji s klikom gumba. Django olajša oblikovanje dinamičnih URL-jev. Ima modul za konfiguracijo URL-jev (URLconf), ki povezuje izraze URL-jev s pogledi.

Vsa koda v URLconf je v sintaksi Python, kar olajša ustvarjanje dinamičnih URL-jev. Naučimo se več o dinamičnih URL-jih z izdelavo projekta Django.

1. Ustvarite projekt Django

Prvič, ustvarite projekt Django in aplikacija (aplikacija).

Poimenujte svojo aplikacijo Boma-ura. Aplikacija bo zbirala lokacijo, opis in številke prebivalcev iz različnih sosesk. Ustvarite model z imenom NeighborHood. Uporabite model za dodajanje informacij o soseskah v bazo podatkov. Naučite se ustvarjanje modelov v Djangu in bazo podatkov, če ne poznate.

instagram viewer

Nato ustvarite funkcijo pogleda za soseske.

2. Ustvarite funkcijo pogleda

V Djangu so pogledi funkcije Python, ki sprejemajo zahteve HTTP in vračajo odgovore. Na spletni strani, ki jo poganja Django, pogledi opravljajo različne naloge in misije.

Če želite izvesti pogled, ga morate poklicati prek URL-ja. URL je edinstvena pot do vira v spletu. Vir je lahko stran HTML, slika ali končna točka API-ja.

Ustvarite URL, ki pridobi podatke o soseski na podlagi posredovanih parametrov. Če želite to narediti, lahko uporabite primarni ključ (pk) oz Identifikacija (id) za pridobitev informacij. Za to boste uporabili eno predlogo.

Poglede lahko ustvarite tako, da jih definirate v datoteki, imenovani views.py v mapi aplikacije. Začnite z uvozom upodabljati funkcijo iz Djanga za prikaz podatkov na URL-ju. Uvozite tudi NeighborHood model iz models.py.

od django.shortcuts uvoz upodabljati
od .modeli uvoz soseska

Nato ustvarite funkcijo pogleda z imenom domov ki prikaže vse soseske na domači predlogi. The NeighborHood.objects.all() funkcija prejme podatke za vse soseske iz baze podatkov.

defdomov(prošnja):
soseske = NeighbourHood.objects.all()
vrni render (zahteva, "domov.html", {'soseski':soseske})

Prav tako ustvarite funkcijo pogleda za join_hood ki bo prikazal informacije o soseski. The NeighbourHood.objects.get (id=id) funkcija zahteva podatke glede na ID. Informacije so nato upodobljene na predlogi.

defjoin_hood(zahteva, id):
soseska = NeighbourHood.objects.get (id=id)
vrni render (zahteva, 'join_hood.html', {'soseska':soseska})

Pozneje, ko se pomaknete do soseske, boste lahko videli informacije o njenem profilu.

3. Ustvarite dinamični URL

Zdaj lahko ustvarite dinamični URL za funkcijo pogleda, ki ste jo ustvarili.

od django.urls uvoz pot
od. uvoz pogledi
od django.conf uvoz nastavitve
od django.conf.urls.static uvozstatična
oddjango.contrib.statične datoteke.urlsuvozstaticfiles_urlpatterns

urlvzorci = [
pot ('domov', views.home, ime='domov'),
pot ('join_hood/<str: id>/', views.join_hood, name='join_hood'),
]

čenastavitve.DEBUG:
vzorci url += statična(nastavitve. MEDIA_URL, document_root = nastavitve. MEDIA_ROOT)

Uvozi pot iz URL-jev Django, da ustvarite poti za pogled. Nato uvozite funkcije pogleda iz views.py.

The join_hood URL ima ogrado v oglatih oklepajih:. To zajame ta del URL-ja in ga pošlje v pogled.

Kotni oklepaji običajno vključujejo specifikacijo pretvornika. Specifikacija je lahko niz (str) ali celo število (int). Django ponuja tudi polž, pot, oz univerzalno edinstvene identifikatorje (uuid). Specifikacija omejuje vrsto spremenljivke ali število znakov, posredovanih v URL-ju v pogled.

Če naslove URL poimenujete, jih boste lažje prepoznali na predlogah.

The statična in staticfiles uvozi prikaz statičnih datotek na poteh URL. Izvedite več o tem, kako strukturirati parametre URL v uradnem Django dokumentacijo.

4. Dodajte URL v predlogo

Ko URL-ju dodate funkcijo pogleda, ustvarite predlogo HTML za prikaz podatkov. Vi poimenujte predlogo join_hood.html.

{% se razteza "base.html" %}

{% obremenitev statična %}

{% blok vsebine %}
<razred div="kartica mb-3" slog="max-width: fit content;">
<razred div="vrstica g-0">
<razred div="col-md-4">
<razred div="col-md-8">
<razred div="telo kartice">
<h5 razred="naslov kartice"> Dobrodošli!</h5>
<p razred="besedilo kartice pt-4"> Ime: {{neighbourhood.name}}</str>
<p razred="besedilo kartice pt-4"> Lokacija: {{neighbourhood.location}}</str>
<p razred="besedilo kartice pt-4"> Opis: {{neighbourhood.description}}</str>
<p razred="besedilo kartice pt-4"> Health Tel:{{neighbourhood.health_tell}}</str>
<p razred="besedilo kartice pt-4"> Številka policije: {{neighbourhood.police_number}}</str>
<p razred="besedilo kartice pt-4"> Prebivalci: {{soseska. štetje}}</str>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Ustvarite join_hood predlogo v mapi aplikacije za prikaz podatkov o soseski. Najprej razširite base.html predlogo s slogovnimi listami (bootstrap), ki jih boste uporabili za oblikovanje predloge. Nato upodobite spremenljivke, ki bodo prikazale informacije na strani.

Nato ustvarite a domov.html predlogo, kjer boste prikazali vse soseske.

{% se razteza 'base.html' %}

{% obremenitev statična %}

{% blok vsebine %}
<razred div="posoda" slog="barva: črna;">
<img src="{{neighborhood.hood_logo.url}}" razred="card-img-top" alt="{{user.neighborhood.name}}">

<razred div="vrstica">
{% za sosesko v soseskah %}
<razred div="col-md-4">
<razred div="kartica mb-4" slog="najmanjša višina: 340 slikovnih pik">
<img src="{{neighborhood.hood_logo.url}}" razred="card-img-top" alt="{{user.hood.name}}">

<razred div="telo kartice">
<h5 razred="naslov kartice">
{{neighborhood.name}}
({{neighborhood.location}})
<razred razpona="ml-4">{{soseska. Count}} član{{neighborhood.members.count|pluralize}}</span>
</h5>

<p razred="besedilo kartice">{{neighborhood.description}}</str>
<p razred="besedilo kartice">{{soseska.član. štetje}}</str>

<a href="{% url 'join_hood' sosedstvo.id %}" razred="btn btn-primarni btn-sm">Pridružite se Hoodu</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Na domači strani upodobite vse informacije o soseskah, ki jih želite prikazati. Na domači strani boste dodali gumb in sidrno oznako. Sidrna oznaka ima URL ime in ID soseske.

Ko ga kliknete, se gumb premakne v okolico tega ID-ja. Domača predloga se prikaže na naslovu URL http://127.0.0.1:8000/home/. Spodnja slika prikazuje to stran:

5. Preizkusite dinamično usmerjanje

Zdaj lahko preizkusite, ali dinamično usmerjanje deluje na predlogi. Ko kliknete na pridružite se kapuci gumb, Pomakne se do join_hood predlogo. The join_hood predloga prikazuje informacije o profilu soseske, ki ste jo izbrali.

Videli boste tudi ID soseske, prikazan na URL-ju brskalnika http://127.0.0.1:8000/join_hood/2/

Videlo se bo, kot je prikazano spodaj:

čestitke! Ustvarili ste dinamični URL.

Zakaj uporabljati URL-je Django?

Dinamični URL-ji so pomembna funkcija v spletnih aplikacijah. Django olajša oblikovanje URL-jev glede na vaše potrebe. Odstrani omejitve, ki bi jih lahko povezali z drugimi okviri.

Modul URLconf je poln virov, ki podpirajo ustvarjanje URL-jev Django. Prav tako olajša streženje statičnih datotek na predlogah in izboljša obravnavo napak.

Django ima druge funkcije, namenjene optimizaciji zalednih aplikacij. Med drugimi funkcijami avtomatizira preverjanje pristnosti uporabnikov, upravljanje vsebine in zemljevide spletnih mest.