Kako koristiti dinamičko usmjeravanje s Djangom

Kako koristiti dinamičko usmjeravanje s Djangom
Č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.





MAKEUSEOF VIDEO DANA

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. Napravite 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.



Zatim stvorite funkciju prikaza za susjedstva.

2. Napravite funkciju pogleda

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.

čitajte mac tvrde diskove na računalu

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 .

from django.shortcuts import render 
from .models import NeighbourHood

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.

def home(request): 
neighborhoods = NeighbourHood.objects.all()
return render (request, "home.html", {'neighborhoods':neighborhoods})

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.

def join_hood(request, id): 
neighborhood = NeighbourHood.objects.get(id=id)
return render (request, 'join_hood.html', {'neighborhood':neighborhood})

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

koliko je YouTube premija mjesečno

3. Napravite dinamički URL

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

from django.urls import path 
from . import views
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

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

if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_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 znakova (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 .

{% extends "base.html" %} 

{% load static %}

{% block content %}
<div class="card mb-3" style="max-width:fit content;">
<div class="row g-0">
<div class="col-md-4">
<div class="col-md-8" >
<div class="card-body">
<h5 class="card-title"> Welcome!</h5>
<p class="card-text pt-4"> Name: {{neighbourhood.name}}</p>
<p class="card-text pt-4"> Location: {{neighbourhood.location}}</p>
<p class="card-text pt-4"> Description: {{neighbourhood.description}}</p>
<p class="card-text pt-4"> Health Tel:{{neighbourhood.health_tell}}</p>
<p class="card-text pt-4"> Police Number: {{neighbourhood.police_number}}</p>
<p class="card-text pt-4"> Residents : {{neighbourhood.Count}}</p>
</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.

{% extends 'base.html' %} 

{% load static %}

{% block content %}
<div class="container" style="color:black;">
<img src="{{neighborhood.hood_logo.url}}" class="card-img-top" alt="{{user.neighborhood.name}}">

<div class="row">
{% for neighborhood in neighborhoods %}
<div class="col-md-4">
<div class="card mb-4" style="min-height:340px">
<img src="{{neighborhood.hood_logo.url}}" class="card-img-top" alt="{{user.hood.name}}">

<div class="card-body">
<h5 class="card-title">
{{neighborhood.name}}
({{neighborhood.location}})
<span class="ml-4">{{neighborhood.Count}} member{{neighborhood.members.count|pluralize}}</span>
</h5>

<p class="card-text">{{neighborhood.description}}</p>
<p class="card-text">{{neighborhood.member.Count}}</p>

<a href="{% url 'join_hood' neighborhood.id %}" class="btn btn-primary btn-sm">Join Hood</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/. The picture below demonstrates this page:

  Početna stranica prikazuje sve četvrti

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:

  stranica join_hood prikazuje detalje susjedstva u pregledniku

Č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.

wifi veza, ali nema pristup internetu

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.