Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius.

Be dinaminio maršruto būtų sunku naršyti tinklalapiuose. Naršyklėje turėsite įvesti visą kiekvieno lankomo puslapio kelią. Kokia siaubinga vartotojo patirtis.

Dinaminiai Uniform Resource Locator (URL) leidžia vienu mygtuko paspaudimu pereiti į skirtingus programos puslapius. „Django“ leidžia lengvai kurti dinaminius URL. Jame yra URL konfigūravimo modulis (URLconf), kuris sujungia URL išraiškas su rodiniais.

Visas URLconf kodas yra Python sintaksės, todėl lengva kurti dinaminius URL. Sužinokime daugiau apie dinaminius URL sukūrę Django projektą.

1. Sukurkite Django projektą

Pirmas, sukurti Django projektą ir programa (programėlė).

Pavadinkite programą Boma laikrodis. Programėlė rinks vietą, aprašymą ir gyventojų numerius iš įvairių rajonų. Sukurkite modelį pavadinimu Kaimynystė. Naudokite modelį, norėdami įtraukti informaciją apie apylinkes į duomenų bazę. Sužinokite, kaip kurti modelius Django ir duomenų bazę, jei nesate susipažinę.

instagram viewer

Tada sukurkite apylinkių peržiūros funkciją.

2. Sukurkite peržiūros funkciją

„Django“ rodiniai yra „Python“ funkcijos, kurios priima HTTP užklausas ir pateikia atsakymus. Django sukurtame tinklalapyje rodiniai atlieka įvairias užduotis ir užduotis.

Norėdami vykdyti rodinį, turite jį iškviesti naudodami URL. URL yra unikalus kelias į šaltinį žiniatinklyje. Išteklius gali būti HTML puslapis, vaizdas arba API galutinis taškas.

Sukurkite URL, kuris nuskaito kaimynystės duomenis pagal perduotus parametrus. Norėdami tai padaryti, galite naudoti pirminis raktas (pk) arba Identifikacija (id) informacijai gauti. Tam naudosite vieną šabloną.

Rodinius galite kurti apibrėžę juos faile, vadinamame views.py programėlės aplanke. Pradėkite importuodami pateikti funkcija iš Django, kad būtų rodomi duomenys URL. Taip pat importuokite Kaimynystė modelis iš modeliai.py.

 django.shortcuts importuoti pateikti
.modeliai importuoti kaimynystėje

Tada sukurkite rodinio funkciją pavadinimu namai kuri rodo visus namų šablono rajonus. The NeighborHood.objects.all() funkcija iš duomenų bazės gauna visų rajonų duomenis.

defnamai(užklausa):
kaimynystės = NeighbourHood.objects.all()
grąžinti vaizdą (užklausą, "home.html", {'apylinkes':apylinkės})

Taip pat sukurkite peržiūros funkciją join_hood kuriame bus rodoma apylinkių informacija. The NeighbourHood.objects.get (id=id) funkcija prašo duomenų pagal ID. Tada informacija pateikiama šablone.

defjoin_hood(užklausa, id):
kaimynystė = NeighbourHood.objects.get (id=id)
grąžinti vaizdą (užklausą, 'join_hood.html', {'kaimynystėje':kaimynystė})

Vėliau, kai naršysite į kaimynystę, galėsite matyti jo profilio informaciją.

3. Sukurkite dinaminį URL

Dabar galite sukurti dinaminį sukurtos peržiūros funkcijos URL.

 django.urls importuoti kelias
. importuoti Peržiūros
django.conf importuoti nustatymus
django.conf.urls.static importuotistatinis
django.indėlis.statiniai failai.urlsimportuotistaticfiles_urlpatterns

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

jeigunustatymus.DEBUG:
url šablonai += statinis(nustatymai. MEDIA_URL, dokumento_šaknis = nustatymai. MEDIA_ROOT)

Importuoti kelias iš Django URL, kad sukurtumėte rodinio kelius. Tada importuokite rodinio funkcijas iš views.py.

The join_hood URL kampiniuose skliaustuose yra rezervuota vieta:. Tai užfiksuoja tą URL dalį ir siunčia ją į rodinį.

Kampiniuose skliausteliuose paprastai yra keitiklio specifikacija. Specifikacija gali būti eilutė (str) arba sveikasis skaičius (int). Django taip pat siūlo šliužas, takas, arba visuotinai unikalūs identifikatoriai (uuid). Specifikacija riboja kintamojo tipą arba rodinio URL perduodamų simbolių skaičių.

Suteikę URL pavadinimus padėsite juos atpažinti šablonuose.

The statinis ir statiniai failai importuojami statiniai failai rodomi URL keliuose. Sužinokite daugiau apie tai, kaip struktūrizuoti URL parametrus oficialiame puslapyje Django dokumentacija.

4. Pridėti URL prie šablono

Pridėję peržiūros funkciją prie URL, sukurkite HTML šabloną, kad būtų rodomi duomenys. Jūs pavadinate šabloną join_hood.html.

{% tęsiasi "base.html" %}

{% apkrova statinis %}

{% blokuoti turinį %}
<div klasė ="kortelė mb-3" stilius ="maksimalus plotis: tinka turiniui;">
<div klasė ="g-0 eilutė">
<div klasė ="col-md-4">
<div klasė ="col-md-8">
<div klasė ="kortelės korpusas">
<h5 klasė ="kortelės pavadinimas"> Sveiki!</h5>
<p klasė ="kortelės tekstas pt-4"> Vardas: {{neighbourhood.name}}</p>
<p klasė ="kortelės tekstas pt-4"> Vieta: {{neighbourhood.location}}</p>
<p klasė ="kortelės tekstas pt-4"> Aprašymas: {{neighbourhood.description}}</p>
<p klasė ="kortelės tekstas pt-4"> Sveikata Tel.:{{neighbourhood.health_tell}}</p>
<p klasė ="kortelės tekstas pt-4"> Policijos numeris: {{neighbourhood.police_number}}</p>
<p klasė ="kortelės tekstas pt-4"> Gyventojai: {{kaimynystėje. Skaičiuoti}}</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Sukurti join_hood šabloną programos aplanke, kad būtų rodomi kaimynystės duomenys. Pirma, pratęskite base.html šabloną su stiliaus lapais (bootstrap), kuriuos naudosite formuodami šablono stilių. Tada atvaizduokite kintamuosius, kurie puslapyje pateiks informaciją.

Tada sukurkite a home.html šabloną, kuriame bus rodomi visi rajonai.

{% tęsiasi 'base.html' %}

{% apkrova statinis %}

{% blokuoti turinį %}
<div klasė ="konteineris" stilius ="spalva: juoda;">
<img src="{{neighborhood.hood_logo.url}}" klasė ="card-img-top" alt="{{user.neighborhood.name}}">

<div klasė ="eilė">
{% kaimynystėje esančiuose rajonuose %}
<div klasė ="col-md-4">
<div klasė ="kortelė mb-4" stilius ="minimalus aukštis: 340 taškų">
<img src="{{neighborhood.hood_logo.url}}" klasė ="card-img-top" alt="{{user.hood.name}}">

<div klasė ="kortelės korpusas">
<h5 klasė ="kortelės pavadinimas">
{{kaimynystė.vardas}}
({{neighborhood.location}})
<span klasė ="ml-4">{{kaimynystė. Count}} narys{{neighborhood.members.count|pluralize}}</span>
</h5>

<p klasė ="kortelės tekstas">{{neighborhood.description}}</p>
<p klasė ="kortelės tekstas">{{kaimynystė.narys. Skaičiuoti}}</p>

<a href="{% url 'join_hood' kaimynystė.id %}" klasė ="btn btn-pirminis btn-sm">Prisijunkite prie Hood</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Pagrindiniame puslapyje pateikite visą informaciją, kurią norite rodyti apie apylinkes. Pagrindiniame puslapyje pridėsite mygtuką ir inkaro žymą. Prieraišo žyma turi URL vardas ir kaimynystės ID.

Paspaudus mygtukas pereina į to ID kaimynystę. Pagrindinis šablonas rodomas URL http://127.0.0.1:8000/home/. Žemiau pateikta nuotrauka demonstruoja šį puslapį:

5. Išbandykite dinaminį maršrutą

Dabar galite patikrinti, ar dinaminis maršruto parinkimas veikia šablone. Kai paspausite prisijungti prie gaubto mygtuką, jis pereina į join_hood šabloną. The join_hood šablone rodoma profilio informacija apie pasirinktą kaimynystę.

Naršyklės URL taip pat matysite kaimynystės ID http://127.0.0.1:8000/join_hood/2/

Jis pasirodys taip, kaip parodyta žemiau:

Sveikiname! Sukūrėte dinaminį URL.

Kodėl naudoti „Django“ URL?

Dinaminiai URL yra svarbi žiniatinklio programų funkcija. „Django“ leidžia lengvai kurti URL pagal jūsų poreikius. Tai pašalina apribojimus, kuriuos galite susieti su kitomis sistemomis.

URLconf modulis yra pilnas išteklių, palaikančių Django URL kūrimą. Tai taip pat palengvina statinių failų pateikimą šablonuose ir pagerina klaidų tvarkymą.

„Django“ turi kitų funkcijų, skirtų vidinėms programoms optimizuoti. Jis automatizuoja vartotojo autentifikavimą, turinio administravimą ir svetainių žemėlapius, be kitų funkcijų.