Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju.

Bez dinamičkog usmjeravanja, navigacija web stranicama bila bi teška. U pregledniku biste morali upisati puni put svake stranice koju posjetite. Kakvo užasno korisničko iskustvo.

Dinamički jednoobrazni lokatori resursa (URL-ovi) omogućuju vam navigaciju do različitih stranica u aplikaciji pritiskom na gumb. Django olakšava dizajn dinamičkih URL-ova. Ima modul za konfiguraciju URL-a (URLconf) koji povezuje URL izraze s pogledima.

Sav kod u URLconf-u je u Python sintaksi, što olakšava stvaranje dinamičkih URL-ova. Naučimo više o dinamičkim URL-ovima izgradnjom Django projekta.

1. Stvorite Django projekt

Prvi, stvoriti Django projekt i primjena (app).

Imenujte svoju aplikaciju Boma-sat. Aplikacija će prikupljati lokaciju, opis i brojeve stanovnika iz raznih četvrti. Napravite model pod nazivom Susjedstvo. Koristite model za dodavanje informacija o četvrtima u bazu podataka. Nauči kako stvarati modele u Djangu i bazu podataka ako niste upoznati.

instagram viewer

Zatim stvorite funkciju prikaza za susjedstva.

2. Stvorite funkciju prikaza

U Djangu su pogledi Python funkcije koje primaju HTTP zahtjeve i vraćaju odgovore. Na web stranici koju pokreće Django, pogledi obavljaju različite zadatke i misije.

Da biste izvršili prikaz, morate ga pozvati putem URL-a. URL je jedinstveni put do izvora na webu. Resurs može biti HTML stranica, slika ili API krajnja točka.

Napravite URL koji dohvaća podatke o susjedstvu na temelju proslijeđenih parametara. Da biste to učinili, možete koristiti primarni ključ (pk) ili Identifikacija (id) za dohvaćanje informacija. Za to ćete koristiti jedan predložak.

Poglede možete stvoriti definiranjem u datoteci pod nazivom pogledi.py u mapi aplikacije. Počnite s uvozom prikazati funkcija iz Djanga za prikaz podataka na URL-u. Također uvezite Susjedstvo model iz modeli.py.

iz django.prečaci uvoz prikazati
iz .modeli uvoz Susjedstvo

Zatim stvorite funkciju pogleda pod nazivom Dom koji prikazuje sve četvrti na predlošku kuće. The NeighborHood.objects.all() funkcija prima podatke za sva susjedstva iz baze podataka.

defDom(zahtjev):
susjedstva = NeighbourHood.objects.all()
vratiti render (zahtjev, "dom.html", {'četvrtima':susjedstva})

Također, stvorite funkciju pogleda za join_hood koji će prikazati informacije o susjedstvu. The NeighbourHood.objects.get (id=id) funkcija traži podatke prema ID-u. Podaci se zatim prikazuju na predlošku.

defjoin_hood(zahtjev, id):
susjedstvo = NeighbourHood.objects.get (id=id)
vratiti render (zahtjev, 'join_hood.html', {'susjedstvo':susjedstvo})

Kasnije, kada navigirate do susjedstva, moći ćete vidjeti informacije o njegovom profilu.

3. Izradite dinamički URL

Sada možete stvoriti dinamički URL za funkciju pogleda koju ste izradili.

iz django.urls uvoz staza
iz. uvoz pogleda
iz django.conf uvoz postavke
iz django.conf.urls.static uvozstatički
izdjango.pridonositi.statičke datoteke.urloviuvozstaticfiles_urlpatterns

url uzorci = [
staza ('Dom', views.home, name='Dom'),
staza ('join_hood/<str: id>/', views.join_hood, name='join_hood'),
]

akopostavke.DEBUG:
url uzorci += statički(postavke. MEDIA_URL, document_root = postavke. MEDIJ_ROOT)

Uvoz staza iz Django URL-ova za stvaranje staza za prikaz. Zatim uvezite funkcije prikaza iz pogledi.py.

The join_hood URL ima rezervirano mjesto u uglastim zagradama:. Ovo hvata taj dio URL-a i šalje ga prikazu.

Uglate zagrade obično uključuju specifikaciju pretvarača. Specifikacija može biti niz (str) ili cijeli broj (int). Django također nudi puž, put, ili univerzalno jedinstveni identifikatori (uuid). Specifikacija ograničava vrstu varijable ili broj znakova proslijeđenih u URL-u na pogled.

Davanje naziva URL-ovima pomoći će u njihovom prepoznavanju na predlošcima.

The statički i staticfiles uvozi prikaz statičkih datoteka na URL stazama. Saznajte više o tome kako strukturirati URL parametre u službenom Django dokumentacija.

4. Dodajte URL u predložak

Nakon što URL-u dodate funkciju prikaza, izradite HTML predložak za prikaz podataka. Vi imenujete predložak join_hood.html.

{% se proteže "baza.html" %}

{% opterećenje statički %}

{% blokiraj sadržaj %}
<div klasa="kartica mb-3" stil="max-width: fit sadržaj;">
<div klasa="red g-0">
<div klasa="stupac-md-4">
<div klasa="stupac-md-8">
<div klasa="tijelo kartice">
<h5 razred="kartica-naslov"> Dobrodošli!</h5>
<p razred="tekst kartice pt-4"> Naziv: {{neighbourhood.name}}</str>
<p razred="tekst kartice pt-4"> Lokacija: {{neighbourhood.location}}</str>
<p razred="tekst kartice pt-4"> Opis: {{neighbourhood.description}}</str>
<p razred="tekst kartice pt-4"> Zdravstveni telefon:{{neighbourhood.health_tell}}</str>
<p razred="tekst kartice pt-4"> Broj policije: {{neighbourhood.police_number}}</str>
<p razred="tekst kartice pt-4"> Stanovnici: {{susjedstvo. Računati}}</str>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Stvorite join_hood predložak u mapi aplikacije za prikaz podataka o susjedstvu. Prvo produžite baza.html predložak sa stilskim listovima (bootstrap) koji ćete koristiti za stiliziranje predloška. Zatim generirajte varijable koje će prikazati informacije na stranici.

Zatim stvorite a dom.html predložak gdje ćete prikazati sve četvrti.

{% se proteže 'baza.html' %}

{% opterećenje statički %}

{% blokiraj sadržaj %}
<div klasa="spremnik" stil="Crna boja;">
<img src="{{neighborhood.hood_logo.url}}" klasa="kartica-img-top" alt="{{user.neighborhood.name}}">

<div klasa="red">
{% za susjedstvo u susjedstvu %}
<div klasa="stupac-md-4">
<div klasa="kartica mb-4" stil="minimalna visina: 340 px">
<img src="{{neighborhood.hood_logo.url}}" klasa="kartica-img-top" alt="{{user.hood.name}}">

<div klasa="tijelo kartice">
<h5 razred="kartica-naslov">
{{neighborhood.name}}
({{neighborhood.location}})
<klasa raspona="ml-4">{{susjedstvo. Count}} član{{neighborhood.members.count|pluralize}}</span>
</h5>

<p razred="kartica-tekst">{{neighborhood.description}}</str>
<p razred="kartica-tekst">{{susjedstvo.član. Računati}}</str>

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

Na početnoj stranici iscrtajte sve informacije koje želite prikazati o četvrtima. Dodat ćete gumb i oznaku sidra na početnu stranicu. Oznaka sidra ima URL Ime i susjedstvo ID.

Kada se klikne, gumb vodi do susjedstva tog ID-a. Predložak početne stranice pojavljuje se na URL-u http://127.0.0.1:8000/home/. Slika ispod prikazuje ovu stranicu:

5. Testirajte dinamičko usmjeravanje

Sada možete testirati radi li dinamičko usmjeravanje na predlošku. Kada kliknete na pridružiti se napa gumb, vodi do join_hood šablona. The join_hood predložak prikazuje podatke profila o susjedstvu koje ste odabrali.

Također ćete vidjeti ID četvrti prikazan na URL-u preglednika http://127.0.0.1:8000/join_hood/2/

Pojavit će se kao što je prikazano u nastavku:

Čestitamo! Stvorili ste dinamički URL.

Zašto koristiti Django URL-ove?

Dinamički URL-ovi važna su značajka u web aplikacijama. Django olakšava dizajn URL-ova prema vašim potrebama. Uklanja ograničenja koja biste mogli povezati s drugim okvirima.

Modul URLconf pun je resursa koji podržavaju Django kreiranje URL-ova. Također olakšava posluživanje statičkih datoteka na predlošcima i poboljšava rukovanje pogreškama.

Django ima i druge značajke dizajnirane za optimizaciju pozadinskih aplikacija. Automatizira autentifikaciju korisnika, administraciju sadržaja i mape web mjesta, među ostalim značajkama.