Maison >développement back-end >Tutoriel Python >Guide de configuration d'URL dans le framework Django

Guide de configuration d'URL dans le framework Django

王林
王林original
2023-06-17 09:33:103190parcourir

Django est un framework d'application Web puissant, et la configuration des URL est une partie très critique du framework Django. Cet article présentera les connaissances de base de la configuration d'URL et ses méthodes d'implémentation spécifiques et scénarios d'utilisation dans le framework Django.

1. Connaissance de base de la configuration d'URL

URL signifie Uniform Resource Locator (Uniform Resource Locator). Il s'agit d'une adresse unique utilisée pour identifier les ressources sur le Web. Elle se compose généralement d'un protocole, d'un nom de domaine et d'un chemin.

Dans le framework Django, la configuration d'URL fait référence au processus de liaison des requêtes client aux fonctions d'affichage correspondantes. Lorsque le client envoie une requête, Django trouvera la fonction d'affichage correspondante en fonction des règles définies dans la configuration de l'URL et transmettra la requête à cette fonction d'affichage pour traitement. Par conséquent, le rôle de la configuration de l'URL est de distribuer à différentes fonctions d'affichage pour différents chemins de requête.

2. Comment implémenter la configuration d'URL

Dans le framework Django, la configuration d'URL peut être implémentée de deux manières : des vues basées sur des fonctions et des vues basées sur des classes.

  1. Vue basée sur les fonctions

La vue basée sur les fonctions fait référence à la liaison directe du chemin de la requête à la fonction correspondante. Cette méthode de liaison est très simple. Le code est implémenté comme suit :

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('about/', views.about, name='about'),
    path('contact/', views.contact, name='contact'),
]

Dans l'implémentation du code ci-dessus, via. Importez le module path dans le framework Django pour définir une nouvelle variable urlpatterns, qui est une liste dans laquelle chaque élément est une correspondance entre un chemin et une fonction de vue. Par exemple, le premier élément représente la liaison du chemin vide (c'est-à-dire lorsqu'il n'y a aucune information de chemin après le nom de domaine) avec l'index de la fonction d'affichage, le deuxième élément représente la liaison du chemin /about/ avec la fonction d'affichage about et le le troisième élément représente Indique que le chemin /contact/ est lié au contact de la fonction d'affichage.

  1. Vue basée sur les classes

La vue basée sur les classes fait référence à la liaison directe du chemin de la requête à la méthode de classe correspondante. Cette méthode de liaison est plus flexible et plus facile à développer que la vue basée sur les fonctions. Le code est implémenté comme suit. :

from django.urls import path
from .views import IndexView, AboutView, ContactView

urlpatterns = [
    path('', IndexView.as_view(), name='index'),
    path('about/', AboutView.as_view(), name='about'),
    path('contact/', ContactView.as_view(), name='contact'),
]

Dans l'implémentation du code ci-dessus, une nouvelle variable urlpatterns est définie en important les classes IndexView, AboutView et ContactView dans le module de vues, où chaque élément est une correspondance entre un chemin et une vue de classe. Par exemple, le premier élément représente la liaison du chemin vide (c'est-à-dire lorsqu'il n'y a aucune information de chemin après le nom de domaine) avec la vue de classe IndexView, le deuxième élément représente la liaison du chemin /about/ avec la vue de classe AboutView et le le troisième élément représente Indique que le chemin /contact/ est lié à la vue de classe ContactView.

3. Scénarios d'utilisation de la configuration d'URL

La configuration d'URL est généralement utilisée pour résoudre les deux problèmes suivants :

  1. Distribution des requêtes

Lorsque le client envoie une requête, le framework Django transmettra la requête à la configuration d'URL. pour l'analyse, puis transmettez la demande à la fonction d'affichage ou à la méthode de classe correspondante pour traitement. La configuration de l'URL est comme un routeur, responsable du routage des requêtes des clients vers la fonction de gestionnaire appropriée.

  1. Générer une URL

En plus de distribuer les requêtes, la configuration des URL est également souvent utilisée pour générer des URL. Étant donné que le framework Django nous permet de faire référence à un chemin d'URL spécifique via le nom de l'URL, ce nom d'URL sera automatiquement converti en chemin d'URL correspondant. Par exemple :

<a href="{% url 'about' %}">关于我们</a>

Dans le code ci-dessus, nous faisons référence au chemin URL nommé 'about' via la balise de modèle {% url 'about' %}, et l'effet final est de générer le chemin URL de /about/.

4. Applications avancées de configuration d'URL

Dans le framework Django, en plus d'être utilisée pour la distribution de requêtes de base et la génération d'URL, la configuration d'URL peut également être appliquée aux scénarios avancés suivants :

  1. Transmission de paramètres d'URL

Dans la configuration de l'URL, nous pouvons définir le type de variable et le nom de la variable du chemin de l'URL en utilisant 3346a694ac8a048610f49bd53cd0ec6c. Par exemple :

from django.urls import path
from .views import post_detail

urlpatterns = [
    path('post/<int:pk>/', post_detail, name='post_detail'),
]

Dans le code ci-dessus, nous utilisons 35fd11114e6d69520106198971ac7ac0 pour définir un paramètre entier pk du chemin post_detail. Ce paramètre est séparé par deux points à la fin du chemin et passé en paramètre dans la fonction d'affichage.

  1. Correspondance des caractères d'URL

Dans la configuration d'URL, nous pouvons utiliser des expressions régulières pour faire correspondre certains caractères spécifiques du chemin de la requête. Cette méthode est très flexible. Par exemple :

from django.urls import re_path
from .views import search

urlpatterns = [
    re_path(r'^search/(?P<keyword>w+)/$', search, name='search'),
]

Dans le code ci-dessus, nous utilisons la méthode re_path pour définir une règle de correspondance de chemin, qui contient un paramètre de mot-clé et peut faire correspondre les caractères de chemin contenant des lettres, des chiffres et des traits de soulignement.

  1. Espaces de noms d'URL

Dans le framework Django, les espaces de noms d'URL font référence au regroupement d'URL pour une ou plusieurs applications pour une meilleure gestion des URL au sein de l'application. Par exemple :

from django.urls import path, include
from myapp1.views import index as myapp1_index
from myapp2.views import index as myapp2_index

myapp1_patterns = [
    path('', myapp1_index, name='index'),
]

myapp2_patterns = [
    path('', myapp2_index, name='index'),
]

urlpatterns = [
    path('myapp1/', include((myapp1_patterns, 'myapp1'), namespace='myapp1')),
    path('myapp2/', include((myapp2_patterns, 'myapp2'), namespace='myapp2')),
]

Dans le code ci-dessus, nous utilisons la fonction include pour introduire la configuration URL de chaque application dans le framework Django et définir un espace de noms pour la configuration URL de chaque application. Cela garantit qu'il n'y aura pas de conflits entre les URL dans différentes applications et facilite également le référencement des URL dans les modèles.

Résumé

Cet article présente les connaissances de base, les méthodes d'implémentation et les applications avancées de la configuration d'URL dans le framework Django. J'espère qu'il pourra aider les lecteurs à mieux comprendre la configuration d'URL dans le framework Django et à être en mesure d'appliquer de manière flexible la configuration d'URL dans le cadre réel. développement. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn