Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision.

Ohne dynamisches Routing wäre das Navigieren auf Webseiten schwierig. Sie müssten den vollständigen Pfad jeder Seite, die Sie im Browser besuchen, eingeben. Was für eine schreckliche Benutzererfahrung.

Mit dynamischen Uniform Resource Locators (URLs) können Sie mit einem Klick auf eine Schaltfläche zu verschiedenen Seiten einer App navigieren. Django macht es einfach, dynamische URLs zu entwerfen. Es verfügt über ein URL-Konfigurationsmodul (URLconf), das URL-Ausdrücke mit Ansichten verbindet.

Der gesamte Code in der URLconf ist in Python-Syntax, wodurch es einfach ist, dynamische URLs zu erstellen. Lassen Sie uns mehr über dynamische URLs erfahren, indem wir ein Django-Projekt erstellen.

1. Erstellen Sie ein Django-Projekt

Erste, Erstellen Sie ein Django-Projekt und Anwendung (App).

Benennen Sie Ihre App Boma-Uhr. Die App sammelt Standort, Beschreibung und Einwohnernummern aus verschiedenen Stadtteilen. Erstellen Sie ein Modell mit dem Namen

Nachbarschaft. Verwenden Sie das Modell, um Informationen über die Nachbarschaften in eine Datenbank einzufügen. Lernen wie man Erstellen Sie Modelle in Django und die Datenbank, wenn Sie nicht vertraut sind.

Erstellen Sie als Nächstes eine Ansichtsfunktion für die Nachbarschaften.

2. Erstellen Sie eine Ansichtsfunktion

In Django sind Ansichten Python-Funktionen, die HTTP-Anforderungen entgegennehmen und Antworten zurückgeben. Auf einer von Django betriebenen Webseite führen Ansichten verschiedene Aufgaben und Missionen aus.

Um eine View auszuführen, müssen Sie diese über eine URL aufrufen. Eine URL ist ein eindeutiger Pfad zu einer Ressource im Web. Die Ressource kann eine HTML-Seite, ein Bild oder ein API-Endpunkt sein.

Erstellen Sie eine URL, die Nachbarschaftsdaten basierend auf den übergebenen Parametern abruft. Dazu können Sie die verwenden Primärschlüssel (pk) oder Identifikation (id) um die Informationen abzurufen. Dazu verwenden Sie eine Vorlage.

Sie können Ansichten erstellen, indem Sie sie in einer Datei namens definieren Ansichten.py im Ordner der App. Beginnen Sie mit dem Importieren der machen Funktion von Django, um Daten an der URL anzuzeigen. Importieren Sie auch die Nachbarschaft Modell aus Modelle.py.

aus django.shortcuts importieren machen
aus .Modelle importieren Nachbarschaft

Erstellen Sie als Nächstes eine Ansichtsfunktion mit dem Namen heim das alle Nachbarschaften auf der Home-Vorlage anzeigt. Der NeighborHood.objects.all() Funktion erhält Daten für alle Nachbarschaften aus der Datenbank.

defheim(Anfrage):
Nachbarschaften = NeighbourHood.objects.all()
zurück rendern (Anfrage, "home.html", {'Nachbarschaften':Nachbarschaften})

Erstellen Sie außerdem eine Ansichtsfunktion für join_hood das zeigt die Informationen einer Nachbarschaft an. Der NeighbourHood.objects.get (id=id) Funktion fordert Daten gemäß der ID an. Die Informationen werden dann auf einer Vorlage gerendert.

defjoin_hood(Anfrage ID):
Nachbarschaft = NeighbourHood.objects.get (id=id)
zurück rendern (Anfrage, 'join_hood.html', {'Nachbarschaft':Nachbarschaft})

Wenn Sie später zu einer Nachbarschaft navigieren, können Sie deren Profilinformationen sehen.

3. Erstellen Sie eine dynamische URL

Sie können jetzt eine dynamische URL für die von Ihnen erstellte Ansichtsfunktion erstellen.

aus django.urls importieren Weg
aus. importieren Ansichten
aus django.conf importieren Einstellungen
aus django.conf.urls.static importierenstatisch
ausDjango.Beitrag.staticfiles.urlsimportierenstaticfiles_urlpatterns

URL-Muster = [
Weg ('heim', views.home, name='heim'),
Weg ('join_hood/<str: id>/', views.join_hood, name='join_hood'),
]

WennEinstellungen.DEBUGGEN:
URL-Muster += statisch(Einstellungen. MEDIA_URL, document_root = Einstellungen. MEDIA_ROOT)

Importieren Weg von Django-URLs, um Pfade für die Ansicht zu erstellen. Importieren Sie dann die Ansichtsfunktionen aus Ansichten.py.

Der join_hood URL hat einen Platzhalter in spitzen Klammern:. Dadurch wird dieser Teil der URL erfasst und an die Ansicht gesendet.

Die spitzen Klammern enthalten in der Regel eine Konverterangabe. Die Angabe kann entweder ein String (str) oder eine ganze Zahl (int) sein. Django bietet auch Schnecke, Weg, oder universell eindeutige Kennungen (uuid). Die Spezifikation begrenzt den Variablentyp oder die Anzahl der Zeichen, die in der URL an die Ansicht übergeben werden.

Wenn Sie den URLs einen Namen geben, können Sie sie in den Vorlagen leichter identifizieren.

Der statisch Und Statische Dateien Importe zeigen statische Dateien auf den URL-Pfaden an. Erfahren Sie mehr über die Strukturierung von URL-Parametern im offiziellen Django Dokumentation.

4. URL zu einer Vorlage hinzufügen

Nachdem Sie die Ansichtsfunktion zur URL hinzugefügt haben, erstellen Sie eine HTML-Vorlage, um die Daten anzuzeigen. Sie benennen die Vorlage join_hood.html.

{% erweitert "basis.html" %}

{% Belastung statisch %}

{% Inhalt blockieren %}
<div-Klasse="Karte mb-3" Stil="max-width: Inhalt anpassen;">
<div-Klasse="Reihe g-0">
<div-Klasse="col-md-4">
<div-Klasse="col-md-8">
<div-Klasse="Kartenkörper">
<h5 Klasse="Kartentitel"> Willkommen!</h5>
<p Klasse="Kartentext pt-4"> Name: {{Nachbarschaft.Name}}</P>
<p Klasse="Kartentext pt-4"> Standort: {{Nachbarschaft.Standort}}</P>
<p Klasse="Kartentext pt-4"> Beschreibung: {{Nachbarschaft.Beschreibung}}</P>
<p Klasse="Kartentext pt-4"> Gesundheitstelefon: {{neighbourhood.health_tell}}</P>
<p Klasse="Kartentext pt-4"> Polizeinummer: {{neighbourhood.police_number}}</P>
<p Klasse="Kartentext pt-4"> Einwohner: {{Nachbarschaft. Zählen}}</P>
</div>
</div>
</div>
</div>
</div>
{% Endblock %}

Erstellen Sie die join_hood Vorlage im App-Ordner, um die Nachbarschaftsdaten anzuzeigen. Erweitern Sie zunächst die basis.html Vorlage mit Stylesheets (Bootstrap), die Sie zum Gestalten der Vorlage verwenden werden. Rendern Sie dann die Variablen, die die Informationen auf der Seite anzeigen.

Als nächstes erstellen Sie eine home.html Vorlage, in der Sie alle Nachbarschaften anzeigen.

{% erweitert 'basis.html' %}

{% Belastung statisch %}

{% Inhalt blockieren %}
<div-Klasse="Container" Stil="Farbe: Schwarz;">
<img src="{{nachbarschaft.hood_logo.url}}" Klasse="card-img-top" alt="{{Benutzer.Nachbarschaft.Name}}">

<div-Klasse="Reihe">
{% für Nachbarschaft in Nachbarschaften %}
<div-Klasse="col-md-4">
<div-Klasse="Karte mb-4" Stil="Mindesthöhe: 340px">
<img src="{{nachbarschaft.hood_logo.url}}" Klasse="card-img-top" alt="{{user.hood.name}}">

<div-Klasse="Kartenkörper">
<h5 Klasse="Kartentitel">
{{Nachbarschaft.Name}}
({{Nachbarschaft.Standort}})
<Span-Klasse ="ml-4">{{Nachbarschaft. Anzahl}} Mitglied{{neighborhood.members.count|pluralize}}</span>
</h5>

<p Klasse="Kartentext">{{Nachbarschaft.Beschreibung}}</P>
<p Klasse="Kartentext">{{nachbarschaft.mitglied. Zählen}}</P>

<ein href="{%-URL 'join_hood' nachbarschaft.id %}" Klasse="btn btn-primär btn-sm">Mach mit bei Hood</A>
</div>
</div>
</div>
</div>
</div>
{% Endblock %}

Rendern Sie auf der Startseite alle Informationen, die Sie über die Nachbarschaften anzeigen möchten. Sie werden eine Schaltfläche und ein Anchor-Tag auf der Startseite hinzufügen. Das Anchor-Tag hat die URL Name Und Nachbarschafts-ID.

Wenn Sie darauf klicken, navigiert die Schaltfläche in die Nachbarschaft dieser ID. Die Home-Vorlage wird unter der URL angezeigt http://127.0.0.1:8000/home/. Das folgende Bild zeigt diese Seite:

5. Testen Sie dynamisches Routing

Jetzt können Sie testen, ob das dynamische Routing auf der Vorlage funktioniert. Wenn Sie auf die klicken Haube beitreten Taste, Es navigiert zu join_hood Vorlage. Der join_hood Die Vorlage zeigt Profilinformationen über die von Ihnen ausgewählte Nachbarschaft an.

Sie sehen auch die ID der Nachbarschaft, die auf der Browser-URL angezeigt wird http://127.0.0.1:8000/join_hood/2/

Es wird wie unten gezeigt angezeigt:

Glückwunsch! Sie haben eine dynamische URL erstellt.

Warum Django-URLs verwenden?

Dynamische URLs sind ein wichtiges Feature in Webanwendungen. Django macht es einfach, URLs nach Ihren Bedürfnissen zu gestalten. Es beseitigt die Einschränkungen, die Sie möglicherweise mit anderen Frameworks in Verbindung bringen.

Das URLconf-Modul ist voll von Ressourcen, die die Erstellung von Django-URLs unterstützen. Es erleichtert auch das Bereitstellen statischer Dateien auf Vorlagen und verbessert die Fehlerbehandlung.

Django verfügt über weitere Funktionen zur Optimierung von Backend-Anwendungen. Es automatisiert unter anderem die Benutzerauthentifizierung, Inhaltsverwaltung und Sitemaps.