Fonctions django.urls
à utiliser dans les configurations d’URL¶
path()
¶
-
path
(route, view, kwargs=None, name=None)¶
Renvoie un élément à inclure dans urlpatterns
. Par exemple
from django.urls import include, path
urlpatterns = [
path("index/", views.index, name="main-view"),
path("bio/<username>/", views.bio, name="bio"),
path("articles/<slug:title>/", views.article, name="article-detail"),
path("articles/<slug:title>/<int:section>/", views.section, name="article-section"),
path("blog/", include("blog.urls")),
...,
]
route
¶
The route
argument should be a string or
gettext_lazy()
(see
Traduction de motifs d’URL) that contains a URL pattern. The string
may contain angle brackets (like <username>
above) to capture part of the
URL and send it as a keyword argument to the view. The angle brackets may
include a converter specification (like the int
part of <int:section>
)
which limits the characters matched and may also change the type of the
variable passed to the view. For example, <int:section>
matches a string
of decimal digits and converts the value to an int
.
When processing a request, Django starts at the first pattern in
urlpatterns
and makes its way down the list, comparing the requested URL
against each pattern until it finds one that matches. See
Processus de traitement des requêtes par Django for more details.
Patterns don’t match GET and POST parameters, or the domain name. For example,
in a request to https://www.example.com/myapp/
, the URLconf will look for
myapp/
. In a request to https://www.example.com/myapp/?page=3
, the
URLconf will also look for myapp/
.
view
¶
The view
argument is a view function or the result of
as_view()
for class-based views. It can
also be a django.urls.include()
.
When Django finds a matching pattern, it calls the specified view function with
an HttpRequest
object as the first argument and any
« captured » values from the route as keyword arguments.
kwargs
¶
Le paramètre kwargs
permet de transmettre des paramètres supplémentaires à la fonction ou méthode de vue. Voir Transmission de paramètres supplémentaires à une vue pour un exemple.
name
¶
Naming your URL lets you refer to it unambiguously from elsewhere in Django, especially from within templates. This powerful feature allows you to make global changes to the URL patterns of your project while only touching a single file.
Voir Nommage des motifs d’URL pour connaître l’utilité du paramètre name
.
re_path()
¶
-
re_path
(route, view, kwargs=None, name=None)¶
Renvoie un élément à inclure dans urlpatterns
. Par exemple
from django.urls import include, re_path
urlpatterns = [
re_path(r"^index/$", views.index, name="index"),
re_path(r"^bio/(?P<username>\w+)/$", views.bio, name="bio"),
re_path(r"^blog/", include("blog.urls")),
...,
]
Le paramètre route
devrait être une chaîne ou une valeur gettext_lazy()
(voir Traduction de motifs d’URL) contenant une expression régulière compatible avec le module re
de Python. Les chaînes utilisent typiquement la syntaxe des chaînes brutes (r''
) afin qu’elles puissent contenir des séquences telles que \d
sans devoir échapper la barre oblique inverse avec une autre barre. Lorsqu’une correspondance est trouvée, les groupes capturés à partir de l’expression régulière sont transmis à la vue – sous forme de paramètres nommés si les groupes sont nommés ou sous forme de paramètres positionnels le cas contraire. Les valeurs sont passées sous forme de chaînes sans conversion de type.
Lorsqu’une route
se termine par $
, l’URL demandée toute entière, qui correspond avec path_info
, doit correspondre avec le motif d’expression régulière (re.fullmatch()
est utilisé).
Les paramètres view
, kwargs
et name
sont les mêmes que pour path()
.
include()
¶
-
include
(module, namespace=None)[source]¶ -
include
(pattern_list) -
include
((pattern_list, app_namespace), namespace=None) Une fonction acceptant un chemin d’importation Python complet vers un autre module de configuration d’URL devant être « inclus » à cet endroit. Il est possible d’indiquer aussi l’espace de noms d’application et l’espace de noms d’instance dans lesquels les éléments seront inclus.
Habituellement, l’espace de noms d’application doit être défini par le module inclus. Si un espace de noms d’application est défini, le paramètre
namespace
peut être utilisé pour définir un espace de noms d’instance différent.include()
accepte aussi en paramètre soit un objet itérable renvoyant des motifs d’URL ou un tuple binaire contenant un tel objet itérable accompagné des noms des espaces de noms d’application.Paramètres:
Voir Inclusion d’autres URLconfs et Espaces de noms d’URL et configurations d’URL incluses.
register_converter()
¶
La fonction pour inscrire un convertisseur à utiliser dans les route
s de path()
.
Le paramètre converter
est une classe de convertisseur et type_name
est le nom du convertisseur à utiliser dans les motifs de chemins. Voir Inscription de convertisseurs de chemin personnalisés pour trouver un exemple.
Obsolète depuis la version 5.1: La surcharge de convertisseurs existants est obsolète.
Fonctions django.conf.urls
à utiliser dans les configurations d’URL¶
static()
¶
-
static.
static
(prefix, view=django.views.static.serve, **kwargs)¶
Fonction utilitaire qui renvoie un motif d’URL pour servir les fichiers en mode débogage :
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
handler400
¶
-
handler400
¶
Un objet exécutable ou une chaîne représentant le chemin d’importation Python complet vers la vue devant être appelée si le client HTTP a envoyé une requête qui a provoqué une condition d’erreur et une réponse avec un code de statut 400.
Par défaut, il s’agit de django.views.defaults.bad_request()
. Si vous implémentez une vue personnalisée, vérifiez qu’elle accepte les paramètres request
et exception
et qu’elle renvoie une réponse HttpResponseBadRequest
.
handler403
¶
-
handler403
¶
Un objet exécutable ou une chaîne représentant le chemin d’importation Python complet vers la vue devant être appelée si l’utilisateur n’a pas les droits nécessaires pour accéder à une ressource.
Par défaut, il s’agit de django.views.defaults.permission_denied()
. Si vous implémentez une vue personnalisée, vérifiez qu’elle accepte les paramètres request
et exception
et qu’elle renvoie une réponse HttpResponseForbidden
.
handler404
¶
-
handler404
¶
Un objet exécutable ou une chaîne représentant le chemin d’importation Python complet vers la vue devant être appelée si aucun des motifs d’URL ne correspond.
Par défaut, il s’agit de django.views.defaults.page_not_found()
. Si vous implémentez une vue personnalisée, vérifiez qu’elle accepte les paramètres request
et exception
et qu’elle renvoie une réponse HttpResponseNotFound
.
handler500
¶
-
handler500
¶
Un objet exécutable ou une chaîne représentant le chemin d’importation Python complet vers la vue devant être appelée en cas d’erreur de serveur. Les erreurs de serveur se produisent lorsque des erreurs d’exécution apparaissent dans le code des vues.
Par défaut, il s’agit de django.views.defaults.server_error()
. Si vous implémentez une vue personnalisée, assurez-vous qu’elle accepte un paramètre request
et qu’elle renvoie une réponse HttpResponseServerError
.