Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu.

Ilma dünaamilise marsruutimiseta oleks veebilehtedel navigeerimine keeruline. Peaksite sisestama brauseris iga külastatava lehe täieliku tee. Milline kohutav kasutajakogemus.

Dünaamilised ühtsed ressursiotsijad (URL-id) võimaldavad teil navigeerida rakenduse erinevatele lehtedele ühe nupuvajutusega. Django muudab dünaamiliste URL-ide kujundamise lihtsaks. Sellel on URL-i konfiguratsioonimoodul (URLconf), mis ühendab URL-i avaldised vaadetega.

Kogu URLconfi kood on Pythoni süntaksis, mis teeb dünaamiliste URL-ide loomise lihtsaks. Lisateavet dünaamiliste URL-ide kohta saate Django projekti loomisel.

1. Looge Django projekt

Esiteks luua Django projekt ja rakendus (rakendus).

Nimetage oma rakendus Boma-kell. Rakendus kogub erinevatest linnaosadest asukoha, kirjelduse ja elanike numbrid. Looge mudel nimega Naabruskond. Kasutage mudelit linnaosade kohta teabe lisamiseks andmebaasi. Õppige, kuidas luua Djangos mudeleid ja andmebaasi, kui te pole tuttav.

instagram viewer

Järgmisena looge linnaosade jaoks vaatefunktsioon.

2. Looge vaatefunktsioon

Djangos on vaated Pythoni funktsioonid, mis võtavad vastu HTTP-päringuid ja tagastavad vastuseid. Django toega veebilehel täidavad vaated mitmesuguseid ülesandeid ja ülesandeid.

Vaate käivitamiseks peate selle URL-i kaudu kutsuma. URL on ainulaadne tee veebis oleva ressursi juurde. Ressursiks võib olla HTML-leht, pilt või API lõpp-punkt.

Looge URL, mis hangib edastatud parameetrite alusel naabruskonna andmed. Selleks võite kasutada primaarvõti (pk) või Identifitseerimine (id) teabe hankimiseks. Selleks kasutate ühte malli.

Saate luua vaateid, määratledes need failis nimega views.py rakenduse kaustas. Alustage importimisest renderdama funktsioon Django andmete kuvamiseks URL-is. Importige ka Naabruskond mudel alates mudelid.py.

alates django.otseteed importida renderdama
alates .mudelid importida Naabruskond

Järgmisena looge vaatefunktsioon nimega Kodu mis kuvab kodumalli kõik linnaosad. The NeighborHood.objects.all() funktsioon saab andmebaasist andmeid kõigi linnaosade kohta.

defKodu(taotlus):
naabruskonnad = NeighbourHood.objects.all()
tagasta renderdus (taotlus, "home.html", {'naabruskonnad':naabruskonnad})

Looge ka kuvamisfunktsioon liitu_hood mis kuvab naabruskonna teabe. The NeighbourHood.objects.get (id=id) funktsioon küsib andmeid vastavalt ID-le. Seejärel renderdatakse teave mallile.

defliitu_hood(taotlus, id):
naabruskond = NeighbourHood.objects.get (id=id)
tagasta renderdus (taotlus, 'liitu_hood.html', {'naabruskond':naabruskond})

Hiljem, kui navigeerite naabruskonda, näete selle profiiliteavet.

3. Looge dünaamiline URL

Nüüd saate loodud vaatefunktsioonile luua dünaamilise URL-i.

alates django.urls importida tee
alates. importida vaated
alates django.conf importida seaded
alates django.conf.urls.static importidastaatiline
alatesdjango.panus.staatilised failid.urlsimportidastaticfiles_urlpatterns

urlmustrid = [
tee ('Kodu', views.home, name='Kodu'),
tee ('join_hood/<str: id>/', views.join_hood, name='liitu_hood'),
]

kuiseaded.DEBUG:
urlmustrid += staatiline(seaded. MEDIA_URL, dokumendi_juur = seaded. MEDIA_ROOT)

Import tee Django URL-idest, et luua vaatele teed. Seejärel importige vaatefunktsioonid kohast views.py.

The liitu_hood URL-il on nurksulgudes kohahoidja:. See jäädvustab selle URL-i osa ja saadab selle vaatesse.

Nurkklambrid sisaldavad tavaliselt muunduri spetsifikatsiooni. Spetsifikatsioon võib olla string (str) või täisarv (int). Django pakub ka nälkjas, tee, või universaalsed unikaalsed identifikaatorid (uuid). Spetsifikatsioon piirab vaate URL-is edastatava muutuja tüüpi või märkide arvu.

URL-idele nime andmine aitab neid mallidel tuvastada.

The staatiline ja staatilised failid impordid kuvavad staatilisi faile URL-i teedel. Vaadake lisateavet selle kohta, kuidas ametlikus URL-i parameetreid struktureerida Django dokumentatsioon.

4. Lisa mallile URL

Kui olete URL-ile vaatamisfunktsiooni lisanud, looge andmete kuvamiseks HTML-mall. Annate mallile nime liitu_hood.html.

{% pikendab "base.html" %}

{% koormus staatiline %}

{% blokeerida sisu %}
<div klass="kaart mb-3" stiil="maksimaalne laius: mahutav sisu;">
<div klass="rida g-0">
<div klass="col-md-4">
<div klass="col-md-8">
<div klass="kaart-keha">
<h5 klass="kaardi pealkiri"> Tere tulemast!</h5>
<p klass="kaart-tekst pt-4"> Nimi: {{neighbourhood.name}}</lk>
<p klass="kaart-tekst pt-4"> Asukoht: {{neighbourhood.location}}</lk>
<p klass="kaart-tekst pt-4"> Kirjeldus: {{neighbourhood.description}}</lk>
<p klass="kaart-tekst pt-4"> Tervis Tel:{{neighbourhood.health_tell}}</lk>
<p klass="kaart-tekst pt-4"> Politsei number: {{neighbourhood.police_number}}</lk>
<p klass="kaart-tekst pt-4"> Elanikud: {{naabruskond. count}}</lk>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Looge liitu_hood naabruskonna andmete kuvamiseks rakenduse kaustas malli. Esiteks pikendage base.html malli stiililehtedega (bootstrap), mida kasutate malli stiili kujundamiseks. Seejärel renderdage muutujad, mis kuvavad lehel teavet.

Järgmisena looge a home.html mall, kus kuvatakse kõik linnaosad.

{% pikendab 'base.html' %}

{% koormus staatiline %}

{% blokeerida sisu %}
<div klass="konteiner" stiil="värv: must;">
<img src="{{neighborhood.hood_logo.url}}" klass="card-img-top" alt="{{user.neighborhood.name}}">

<div klass="rida">
{% naabruskonna jaoks naabruses %}
<div klass="col-md-4">
<div klass="kaart mb-4" stiil="min-kõrgus: 340 pikslit">
<img src="{{neighborhood.hood_logo.url}}" klass="card-img-top" alt="{{user.hood.name}}">

<div klass="kaart-keha">
<h5 klass="kaardi pealkiri">
{{neighborhood.name}}
({{neighborhood.location}})
<span klass="ml-4">{{naabruskond. Count}} liiget{{neighborhood.members.count|mitmuse}}</span>
</h5>

<p klass="kaart-tekst">{{neighborhood.description}}</lk>
<p klass="kaart-tekst">{{naabruskond.liige. count}}</lk>

<a href="{% url 'liitu_hood' naabruskond.id %}" klass="btn btn-esmane btn-sm">Liituge Hoodiga</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Avalehel renderdage kogu teave, mida soovite linnaosade kohta kuvada. Lisate avalehele nupu ja ankrusildi. Ankrumärgendil on URL nimi ja naabruskonna ID.

Klõpsamisel liigub nupp selle ID naabrusse. Kodumall kuvatakse URL-is http://127.0.0.1:8000/home/. Allolev pilt näitab seda lehte:

5. Testige dünaamilist marsruutimist

Nüüd saate testida, kas dünaamiline marsruutimine mallil töötab. Kui klõpsate liitu kapuutsiga nuppu, see navigeerib valikule liitu_hood malli. The liitu_hood mall kuvab profiiliteavet teie valitud naabruskonna kohta.

Samuti näete brauseri URL-is kuvatud naabruskonna ID-d http://127.0.0.1:8000/join_hood/2/

See kuvatakse järgmiselt:

Palju õnne! Olete loonud dünaamilise URL-i.

Miks kasutada Django URL-e?

Dünaamilised URL-id on veebirakenduste oluline funktsioon. Django abil on lihtne kujundada URL-e vastavalt teie vajadustele. See eemaldab piirangud, mida võite teiste raamistikega seostada.

URLconfi moodul on täis ressursse, mis toetavad Django URL-i loomist. Samuti hõlbustab see staatiliste failide esitamist mallidel ja parandab vigade käsitlemist.

Djangol on ka muid funktsioone, mis on loodud taustarakenduste optimeerimiseks. See automatiseerib muu hulgas kasutaja autentimist, sisuhaldust ja saidikaarte.