Des lecteurs comme vous aident à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation.
Sans routage dynamique, la navigation dans les pages Web serait difficile. Vous devrez taper le chemin complet de chaque page que vous visitez sur le navigateur. Quelle terrible expérience utilisateur.
Les localisateurs de ressources uniformes (URL) dynamiques vous permettent de naviguer vers différentes pages d'une application en un clic. Django facilite la conception d'URL dynamiques. Il dispose d'un module de configuration d'URL (URLconf) qui connecte les expressions d'URL aux vues.
Tout le code de l'URLconf est en syntaxe Python, ce qui facilite la création d'URL dynamiques. Apprenons-en plus sur les URL dynamiques en construisant un projet Django.
1. Créer un projet Django
D'abord, créer un projet Django et application (appli).
Nommez votre application Boma-montre. L'application collectera l'emplacement, la description et les numéros de résidents de divers quartiers. Créer un modèle nommé
Quartier. Utilisez le modèle pour ajouter des informations sur les quartiers dans une base de données. Apprendre à créer des modèles dans Django et la base de données si vous n'êtes pas familier.Ensuite, créez une fonction de vue pour les quartiers.
2. Créer une fonction d'affichage
Dans Django, les vues sont des fonctions Python qui acceptent les requêtes HTTP et renvoient des réponses. Sur une page Web propulsée par Django, les vues effectuent des tâches et des missions variées.
Pour exécuter une vue, vous devez l'appeler via une URL. Une URL est un chemin unique vers une ressource sur le Web. La ressource peut être une page HTML, une image ou un point de terminaison d'API.
Créez une URL qui récupère les données de voisinage en fonction des paramètres passés. Pour ce faire, vous pouvez utiliser le clé primaire (pk) ou Identification (identifiant) pour récupérer les informations. Vous utiliserez un modèle pour ce faire.
Vous pouvez créer des vues en les définissant dans un fichier appelé vues.py dans le dossier de l'application. Commencez par importer le rendre fonction de Django pour afficher les données à l'URL. Importez également les Quartier modèle de modèles.py.
depuis django.raccourcis importer rendre
depuis .des modèles importer Quartier
Ensuite, créez une fonction d'affichage nommée maison qui affiche tous les quartiers sur le modèle de maison. Le NeighborHood.objects.all() La fonction reçoit des données pour tous les quartiers de la base de données.
définitivementmaison(demande):
quartiers = NeighbourHood.objects.all()
retour rendu (requête, "home.html", {'quartiers':quartiers})
Créez également une fonction d'affichage pour join_hood qui affichera les informations d'un quartier. Le NeighbourHood.objects.get (id=id) la fonction demande des données en fonction de l'ID. Les informations sont ensuite rendues sur un modèle.
définitivementjoin_hood(demande, identifiant):
quartier = NeighbourHood.objects.get (id=id)
retour rendu (requête, 'join_hood.html', {'quartier':quartier})
Plus tard, lorsque vous naviguez vers un quartier, vous pourrez voir ses informations de profil.
3. Créer une URL dynamique
Vous pouvez maintenant créer une URL dynamique pour la fonction d'affichage que vous avez créée.
depuis django.urls importer chemin
depuis. importer vues
depuis django.conf importer paramètres
depuis django.conf.urls.statique importerstatique
depuisDjango.contrib.staticfiles.urlsimporterstaticfiles_urlpatternsmodèles d'url = [
chemin ('maison', vues.home, nom='maison'),
chemin ('join_hood/<chaîne: identifiant>/', vues.join_hood, nom='join_hood'),
]
siparamètres.DÉBOGUER:
modèles d'url += statique(paramètres. MEDIA_URL, document_root = paramètres. MEDIA_ROOT)
Importer chemin à partir des URL Django pour créer des chemins pour la vue. Ensuite, importez les fonctions d'affichage à partir de vues.py.
Le join_hood L'URL comporte un espace réservé entre crochets: . Cela capture cette partie de l'URL et l'envoie à la vue.
Les crochets comprennent généralement une spécification de convertisseur. La spécification peut être une chaîne (str) ou un entier (int). Django propose également limace, chemin, ou identifiants universels uniques (uuid). La spécification limite le type de variable ou le nombre de caractères transmis dans l'URL à la vue.
Donner un nom aux URL aidera à les identifier sur les modèles.
Le statique et fichiersstatiques les importations affichent des fichiers statiques sur les chemins d'URL. En savoir plus sur la structuration des paramètres d'URL dans la version officielle Django Documentation.
4. Ajouter une URL à un modèle
Une fois que vous avez ajouté la fonction d'affichage à l'URL, créez un modèle HTML pour afficher les données. Vous nommez le modèle join_hood.html.
{% s'étend "base.html" %}
{% charger statique %}
{% bloque le contenu %}
<classe div="carte mb-3" style="max-width: ajuster le contenu ;">
<classe div="ligne g-0">
<classe div="col-md-4">
<classe div="col-md-8">
<classe div="corps de carte">
<classe h5="titre de la carte"> Accueillir!</h5>
<p classe="carte-texte pt-4"> Nom: {{quartier.nom}}</p>
<p classe="carte-texte pt-4"> Lieu: {{quartier.location}}</p>
<p classe="carte-texte pt-4"> Description: {{quartier.description}}</p>
<p classe="carte-texte pt-4"> Tél Santé :{{quartier.health_tell}}</p>
<p classe="carte-texte pt-4"> Numéro de police: {{quartier.police_number}}</p>
<p classe="carte-texte pt-4"> Résidents: {{quartier. Compter}}</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
Créer le join_hood modèle dans le dossier de l'application pour afficher les données du quartier. Tout d'abord, étendez la base.html modèle avec des feuilles de style (bootstrap) que vous utiliserez pour styliser le modèle. Ensuite, affichez les variables qui afficheront les informations sur la page.
Ensuite, créez un home.html modèle où vous afficherez tous les quartiers.
{% s'étend 'base.html' %}
{% charger statique %}
{% bloque le contenu %}
<classe div="récipient" style="la couleur noire;">
<img source="{{neighborhood.hood_logo.url}}" classe="carte-img-top" alt="{{user.neighborhood.name}}"><classe div="ligne">
{% pour le quartier dans les quartiers %}
<classe div="col-md-4">
<classe div="carte mb-4" style="hauteur min: 340px">
<img source="{{neighborhood.hood_logo.url}}" classe="carte-img-top" alt="{{user.hood.name}}"><classe div="corps de carte">
<classe h5="titre de la carte">
{{neighborhood.name}}
({{quartier.location}})
<classe d'étendue ="ml-4">{{quartier. Compte}} membre{{neighborhood.members.count|pluralize}}</span>
</h5><p classe="texte de la carte">{{neighborhood.description}}</p>
<p classe="texte de la carte">{{neighborhood.member. Compter}}</p>
<un href="{% URL 'join_hood' quartier.id %}" classe="btn btn-primaire btn-sm">Rejoindre Hood</un>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
Sur la page d'accueil, affichez toutes les informations que vous souhaitez afficher sur les quartiers. Vous ajouterez un bouton et une balise d'ancrage sur la page d'accueil. La balise d'ancrage a l'URL nom et identifiant de quartier.
Lorsque vous cliquez dessus, le bouton navigue jusqu'au voisinage de cet ID. Le modèle d'accueil apparaît à l'URL http://127.0.0.1:8000/home/. L'image ci-dessous illustre cette page :
5. Tester le routage dynamique
Maintenant, vous pouvez tester si le routage dynamique fonctionne sur le modèle. Lorsque vous cliquez sur le rejoindre le capot bouton, il navigue vers le join_hood modèle. Le join_hood Le modèle affiche des informations de profil sur le quartier que vous avez sélectionné.
Vous verrez également l'ID du quartier affiché sur l'URL du navigateur http://127.0.0.1:8000/join_hood/2/
Il apparaîtra comme indiqué ci-dessous :
Toutes nos félicitations! Vous avez créé une URL dynamique.
Pourquoi utiliser les URL Django ?
Les URL dynamiques sont une fonctionnalité importante dans les applications Web. Django facilite la conception d'URL en fonction de vos besoins. Il supprime les limitations que vous pourriez associer à d'autres frameworks.
Le module URLconf regorge de ressources prenant en charge la création d'URL Django. Il facilite également la diffusion de fichiers statiques sur des modèles et améliore la gestion des erreurs.
Django a d'autres fonctionnalités conçues pour optimiser les applications backend. Il automatise l'authentification des utilisateurs, l'administration du contenu et les plans de site, entre autres fonctionnalités.