Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion.

Ilman dynaamista reititystä web-sivuilla liikkuminen olisi vaikeaa. Sinun on kirjoitettava selaimeen jokaisen vierailemasi sivun koko polku. Mikä kauhea käyttäjäkokemus.

Dynaamiset Uniform Resource Locators (URL-osoitteet) antavat sinun navigoida sovelluksen eri sivuille napin painalluksella. Django tekee dynaamisten URL-osoitteiden suunnittelusta helppoa. Siinä on URL-määritysmoduuli (URLconf), joka yhdistää URL-lausekkeet näkymiin.

Kaikki URLconfin koodi on Python-syntaksissa, joten dynaamisten URL-osoitteiden luominen on helppoa. Opitaanpa lisää dynaamisista URL-osoitteista rakentamalla Django-projekti.

1. Luo Django-projekti

Ensimmäinen, luoda Django-projekti ja sovellus (sovellus).

Nimeä sovelluksesi Boma-kello. Sovellus kerää sijainnin, kuvauksen ja asukasnumerot eri lähiöistä. Luo malli nimeltä Naapuruus. Käytä mallia lisätäksesi tietoa lähiöistä tietokantaan. Opi kuinka luoda malleja Djangossa ja tietokanta, jos et ole perehtynyt.

instagram viewer

Luo seuraavaksi näkymätoiminto lähiöille.

2. Luo näkymätoiminto

Djangossa näkymät ovat Python-funktioita, jotka ottavat vastaan ​​HTTP-pyynnöt ja palauttavat vastaukset. Djangon tarjoamalla verkkosivulla näkymät suorittavat erilaisia ​​tehtäviä ja tehtäviä.

Näkymän suorittamiseksi sinun on kutsuttava se URL-osoitteen kautta. URL-osoite on ainutlaatuinen polku verkossa olevaan resurssiin. Resurssi voi olla HTML-sivu, kuva tai API-päätepiste.

Luo URL-osoite, joka hakee naapuruston tiedot välitettyjen parametrien perusteella. Voit tehdä tämän käyttämällä ensisijainen avain (pk) tai Tunnistus (id) tiedon hakemiseen. Käytät tähän yhtä mallia.

Voit luoda näkymiä määrittämällä ne tiedostoon nimeltä views.py sovelluksen kansiossa. Aloita tuomalla renderöidä Django-toiminto näyttää tiedot URL-osoitteessa. Tuo myös Naapuruus malli alkaen mallit.py.

alkaen django.shortcuts tuonti renderöidä
alkaen .malleja tuonti naapurustossa

Luo seuraavaksi näkymätoiminto nimeltä Koti joka näyttää kaikki asuinalueet kotimallissa. The NeighborHood.objects.all() toiminto vastaanottaa tiedot kaikista kaupunginosista tietokannasta.

defKoti(pyyntö):
lähialueet = NeighbourHood.objects.all()
palauta renderöinti (pyyntö, "home.html", {'lähiöissä':naapurit})

Luo myös näkymätoiminto join_hood joka näyttää naapuruston tiedot. The NeighbourHood.objects.get (id=id) toiminto pyytää tietoja tunnuksen mukaan. Tiedot esitetään sitten mallipohjalle.

defjoin_hood(pyyntö, id):
naapurusto = NeighbourHood.objects.get (id=id)
palauta renderöinti (pyyntö, 'join_hood.html', {'naapurustossa':naapurusto})

Myöhemmin, kun navigoit naapurustolle, voit nähdä sen profiilitiedot.

3. Luo dynaaminen URL-osoite

Voit nyt luoda dynaamisen URL-osoitteen luomallesi näkymätoiminnolle.

alkaen django.urls tuonti polku
alkaen. tuonti näkymät
alkaen django.conf tuonti asetukset
alkaen django.conf.urls.static tuontistaattinen
alkaendjango.contrib.staattiset tiedostot.urlstuontistaticfiles_urlpatterns

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

josasetukset.DEBUG:
url-mallit += staattinen(asetukset. MEDIA_URL, asiakirjan_juuri = asetukset. MEDIA_ROOT)

Tuonti polku Django URL-osoitteista luodaksesi polkuja näkymälle. Tuo sitten näkymätoiminnot kohteesta views.py.

The join_hood URL-osoitteessa on paikkamerkki kulmasuluissa:. Tämä kaappaa kyseisen osan URL-osoitteesta ja lähettää sen näkymään.

Kulmakiinnikkeet sisältävät yleensä muuntimen tekniset tiedot. Määrittely voi olla joko merkkijono (str) tai kokonaisluku (int). Django tarjoaa myös etana, polku, tai yleisesti yksilölliset tunnisteet (uuid). Määritykset rajoittavat URL-osoitteessa näkymään välitetyn muuttujan tyyppiä tai merkkien määrää.

URL-osoitteille nimeäminen auttaa tunnistamaan ne malleista.

The staattinen ja staattiset tiedostot tuonti näyttää staattiset tiedostot URL-poluissa. Lue lisää URL-parametrien rakenteesta virallisessa versiossa Django dokumentointi.

4. Lisää URL-osoite malliin

Kun olet lisännyt näkymätoiminnon URL-osoitteeseen, luo HTML-malli tietojen näyttämistä varten. Nimeä malli join_hood.html.

{% laajenee "base.html" %}

{% kuorma staattinen %}

{% block content %}
<div class="kortti mb-3" tyyli ="suurin leveys: sovitussisältö;">
<div class="rivi g-0">
<div class="col-md-4">
<div class="col-md-8">
<div class="kortti-runko">
<h5 luokka="kortin nimi"> Tervetuloa!</h5>
<p luokka ="korttiteksti pt-4"> Nimi: {{neighbourhood.name}}</s>
<p luokka ="korttiteksti pt-4"> Sijainti: {{neighbourhood.location}}</s>
<p luokka ="korttiteksti pt-4"> Kuvaus: {{neighbourhood.description}}</s>
<p luokka ="korttiteksti pt-4"> Terveys Puh:{{neighbourhood.health_tell}}</s>
<p luokka ="korttiteksti pt-4"> Poliisinumero: {{neighbourhood.police_number}}</s>
<p luokka ="korttiteksti pt-4"> Asukkaat: {{naapurustossa. Kreivi}}</s>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Luo join_hood sovelluskansiossa oleva malli, joka näyttää naapuruston tiedot. Ensinnäkin laajenna base.html malli tyylisivuilla (bootstrap), joita käytät mallin tyyliin. Muodosta sitten muuttujat, jotka näyttävät tiedot sivulla.

Luo seuraavaksi a home.html malli, jossa näytät kaikki kaupunginosat.

{% laajenee 'base.html' %}

{% kuorma staattinen %}

{% block content %}
<div class="kontti" tyyli ="väri musta;">
<img src="{{neighborhood.hood_logo.url}}" luokka="card-img-top" alt="{{user.neighborhood.name}}">

<div class="rivi">
{% naapurustosta lähiöissä %}
<div class="col-md-4">
<div class="kortti mb-4" tyyli ="minimikorkeus: 340 pikseliä">
<img src="{{neighborhood.hood_logo.url}}" luokka="card-img-top" alt="{{user.hood.name}}">

<div class="kortti-runko">
<h5 luokka="kortin nimi">
{{neighborhood.name}}
({{neighborhood.location}})
<span class="ml-4">{{naapurustossa. Count}} jäsen{{neighborhood.members.count|pluralize}}</span>
</h5>

<p luokka ="korttiteksti">{{neighborhood.description}}</s>
<p luokka ="korttiteksti">{{naapurusto.jäsen. Kreivi}}</s>

<a href="{% url 'join_hood' naapurusto.id %}" luokka="btn btn-ensisijainen btn-sm">Liity Hoodin joukkoon</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Näytä kotisivulla kaikki tiedot, jotka haluat näyttää lähiöistä. Lisäät painikkeen ja ankkuritunnisteen etusivulle. Ankkuritunnisteella on URL-osoite nimi ja naapuruston tunnus.

Napsautettuna painike siirtyy kyseisen tunnuksen alueelle. Kotisivumalli näkyy URL-osoitteessa http://127.0.0.1:8000/home/. Alla oleva kuva havainnollistaa tätä sivua:

5. Testaa dynaamista reititystä

Nyt voit testata, toimiiko dynaaminen reititys mallissa. Kun napsautat liity hupuun -painiketta, se siirtyy kohtaan join_hood sapluuna. The join_hood malli näyttää profiilitiedot valitsemastasi naapurustosta.

Näet myös naapuruston tunnuksen selaimen URL-osoitteessa http://127.0.0.1:8000/join_hood/2/

Se näkyy alla olevan kuvan mukaisesti:

Onnittelut! Olet luonut dynaamisen URL-osoitteen.

Miksi käyttää Django-URL-osoitteita?

Dynaamiset URL-osoitteet ovat tärkeä ominaisuus verkkosovelluksissa. Django tekee URL-osoitteiden suunnittelusta helppoa tarpeidesi mukaan. Se poistaa rajoitukset, joita saatat liittää muihin kehyksiin.

URLconf-moduuli on täynnä resursseja, jotka tukevat Django-URL-osoitteiden luomista. Se helpottaa myös staattisten tiedostojen palvelemista malleissa ja parantaa virheiden käsittelyä.

Djangossa on muita ominaisuuksia, jotka on suunniteltu optimoimaan taustasovelluksia. Se automatisoi muun muassa käyttäjien todennuksen, sisällönhallinnan ja sivustokartat.