Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat.

Fără rutare dinamică, navigarea pe paginile web ar fi dificilă. Ar trebui să tastați calea completă a fiecărei pagini pe care o vizitați în browser. Ce experiență groaznică de utilizator.

Localizatoarele dinamice uniforme de resurse (URL-uri), vă permit să navigați la diferite pagini dintr-o aplicație cu un clic pe un buton. Django facilitează proiectarea de adrese URL dinamice. Are un modul de configurare URL (URLconf) care conectează expresiile URL la vizualizări.

Tot codul din URLconf este în sintaxa Python, ceea ce facilitează crearea de adrese URL dinamice. Să aflăm mai multe despre adresele URL dinamice prin construirea unui proiect Django.

1. Creați un proiect Django

Primul, creați un proiect Django și aplicație (aplicație).

Denumiți-vă aplicația Boma-ceas. Aplicația va colecta locația, descrierea și numerele de rezidenți din diferite cartiere. Creați un model numit

instagram viewer
Cartier. Utilizați modelul pentru a adăuga informații despre cartiere într-o bază de date. Învață cum să creați modele în Django și baza de date dacă nu sunteți familiarizat.

Apoi, creați o funcție de vizualizare pentru cartiere.

2. Creați o funcție de vizualizare

În Django, vizualizările sunt funcții Python care preiau cereri HTTP și returnează răspunsuri. Pe o pagină web alimentată de Django, vizualizările îndeplinesc sarcini și misiuni variate.

Pentru a executa o vizualizare, trebuie să o apelați printr-o adresă URL. O adresă URL este o cale unică către o resursă de pe web. Resursa poate fi o pagină HTML, o imagine sau un punct final API.

Creați o adresă URL care preia date de vecinătate pe baza parametrilor trecuți. Pentru a face acest lucru, puteți utiliza cheie primară (pk) sau Identificare (id) pentru a prelua informația. Veți folosi un șablon pentru a face acest lucru.

Puteți crea vizualizări definindu-le într-un fișier numit vederi.py în folderul aplicației. Începeți prin a importa face funcția de la Django pentru a afișa date la adresa URL. De asemenea, importați Cartier model de la modele.py.

din django.comenzi rapide import face
din .modele import Cartier

Apoi, creați o funcție de vizualizare numită Acasă care afișează toate cartierele pe șablonul de acasă. The NeighborHood.objects.all() funcția primește date pentru toate cartierele din baza de date.

defAcasă(cerere):
vecinătăți = NeighbourHood.objects.all()
returnare randare (cerere, "home.html", {'cartiere':cartierele})

De asemenea, creați o funcție de vizualizare pentru join_hood care va afișa informațiile unui cartier. The NeighbourHood.objects.get (id=id) funcția solicită date conform ID-ului. Informația este apoi redată pe un șablon.

defjoin_hood(cerere, id):
vecinătate = NeighbourHood.objects.get (id=id)
returnare randare (cerere, 'join_hood.html', {'Cartier':Cartier})

Mai târziu, când navigați într-un cartier, veți putea vedea informațiile de profil ale acestuia.

3. Creați o adresă URL dinamică

Acum puteți crea o adresă URL dinamică pentru funcția de vizualizare pe care ați creat-o.

din django.urls import cale
din. import vederi
din django.conf import setări
din django.conf.urls.static importstatic
dindjango.contribuire.staticfiles.urlsimportstaticfiles_urlpatterns

urlpatterns = [
cale ('Acasă', views.home, name='Acasă'),
cale ('join_hood/<str: id>/', views.join_hood, name='join_hood'),
]

dacăsetări.DEBUG:
urlpatterns += static(setari. MEDIA_URL, document_root = setări. MEDIA_ROOT)

Import cale din URL-urile Django pentru a crea căi pentru vizualizare. Apoi importați funcțiile de vizualizare din vederi.py.

The join_hood Adresa URL are un substituent între paranteze unghiulare:. Aceasta captează acea parte a adresei URL și o trimite la vizualizare.

Parantezele unghiulare includ de obicei o specificație a convertorului. Specificația poate fi fie un șir (str) fie un întreg (int). Oferă și Django melc, potecă, sau identificatori unici universal (uuid). Specificația limitează tipul de variabilă sau numărul de caractere transmise în adresa URL la vizualizare.

Acordarea unui nume URL-urilor va ajuta la identificarea lor pe șabloane.

The static și fișiere statice importurile afișează fișiere statice pe căile URL. Aflați mai multe despre cum să structurați parametrii URL în documentul oficial Django documentație.

4. Adăugați o adresă URL la un șablon

După ce ați adăugat funcția de vizualizare la adresa URL, creați un șablon HTML pentru a afișa datele. Numiți șablonul join_hood.html.

{% se extinde "baza.html" %}

{% sarcină static %}

{% block content %}
<div class="card mb-3" stil="max-width: conținut de potrivire;">
<div class="rândul g-0">
<div class="col-md-4">
<div class="col-md-8">
<div class="card-corp">
<clasa h5="card-titlu"> Bine ati venit!</h5>
<clasa p="card-text pct-4"> Nume: {{neighbourhood.name}}</p>
<clasa p="card-text pct-4"> Locație: {{neighbourhood.location}}</p>
<clasa p="card-text pct-4"> Descriere: {{neighbourhood.description}}</p>
<clasa p="card-text pct-4"> Sănătate Tel:{{neighbourhood.health_tell}}</p>
<clasa p="card-text pct-4"> Număr de poliție: {{neighbourhood.police_number}}</p>
<clasa p="card-text pct-4"> Locuitori: {{cartier. Numara}}</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Creați join_hood șablon în folderul aplicației pentru a afișa datele de cartier. În primul rând, extindeți baza.html șablon cu foi de stil (bootstrap) pe care le veți folosi pentru a stila șablonul. Apoi, redați variabilele care vor afișa informațiile pe pagină.

Apoi, creați un home.html șablon în care veți afișa toate cartierele.

{% se extinde 'baza.html' %}

{% sarcină static %}

{% block content %}
<div class="recipient" stil="culoarea neagra;">
<img src="{{neighborhood.hood_logo.url}}" clasa="card-img-top" alt="{{user.neighborhood.name}}">

<div class="rând">
{% pentru cartierul din cartiere %}
<div class="col-md-4">
<div class="card mb-4" stil="înălțime minimă: 340px">
<img src="{{neighborhood.hood_logo.url}}" clasa="card-img-top" alt="{{user.hood.name}}">

<div class="card-corp">
<clasa h5="card-titlu">
{{neighborhood.name}}
({{neighborhood.location}})
<span class="ml-4">{{Cartier. Count}} membru{{neighborhood.members.count|pluralize}}</span>
</h5>

<clasa p="card-text">{{neighborhood.description}}</p>
<clasa p="card-text">{{cartier.membru. Numara}}</p>

<a href="{% URL 'join_hood' vecinătate.id %}" clasa="btn btn-primar btn-sm">Alăturați-vă lui Hood</A>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Pe pagina de start, redați toate informațiile pe care doriți să le afișați despre cartiere. Veți adăuga un buton și o etichetă de ancorare pe pagina de pornire. Eticheta de ancorare are adresa URL Nume și ID cartier.

Când este făcut clic, butonul navighează în vecinătatea acelui ID. Șablonul de pornire apare la adresa URL http://127.0.0.1:8000/home/. Imaginea de mai jos demonstrează această pagină:

5. Testați rutarea dinamică

Acum, puteți testa dacă rutarea dinamică funcționează pe șablon. Când faceți clic pe alăturați capota butonul, Navighează la join_hood șablon. The join_hood șablonul afișează informații de profil despre cartierul pe care l-ați selectat.

Veți vedea, de asemenea, ID-ul cartierului afișat pe adresa URL a browserului http://127.0.0.1:8000/join_hood/2/

Va apărea așa cum se arată mai jos:

Felicitări! Ați creat o adresă URL dinamică.

De ce să folosiți adrese URL Django?

Adresele URL dinamice sunt o caracteristică importantă în aplicațiile web. Django facilitează proiectarea adreselor URL în funcție de nevoile dvs. Îndepărtează limitările pe care le-ați putea asocia cu alte cadre.

Modulul URLconf este plin de resurse care sprijină crearea URL-ului Django. De asemenea, facilitează difuzarea fișierelor statice pe șabloane și îmbunătățește gestionarea erorilor.

Django are alte caracteristici concepute pentru a optimiza aplicațiile backend. Automatizează autentificarea utilizatorilor, administrarea conținutului și hărțile site-ului, printre alte caracteristici.