django.urls funktioner för användning i URLconfs¶
path()¶
- path(route, view, kwargs=None, name=None)¶
Returnerar ett element som kan ingå i urlpatterns. Till exempel:
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
Översättning av URL-mönster) 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.
När Django bearbetar en begäran börjar den vid det första mönstret i urlpatterns och tar sig nedåt i listan och jämför den begärda URL:en med varje mönster tills den hittar ett som matchar. Se Hur Django behandlar en förfrågan för mer information.
Mönster matchar inte GET- och POST-parametrar eller domännamnet. Till exempel:, i en begäran till https://www.example.com/myapp/ kommer URLconf att leta efter myapp/. I en begäran till https://www.example.com/myapp/?page=3 kommer URLconf också att leta efter myapp/.
vy¶
Argumentet view är en vyfunktion eller resultatet av as_view() för klassbaserade vyer. Det kan också vara en django.urls.include().
När Django hittar ett matchande mönster anropar den den angivna vyfunktionen med ett HttpRequest-objekt som första argument och alla ”fångade” värden från rutten som nyckelordsargument.
kwargs¶
Med argumentet kwargs kan du skicka ytterligare argument till vyns funktion eller metod. Se Överföra extra alternativ till vyfunktioner för ett exempel.
namn¶
Genom att namnge din URL kan du hänvisa till den på ett otvetydigt sätt från andra ställen i Django, särskilt från mallar. Denna kraftfulla funktion gör att du kan göra globala ändringar av URL-mönstren i ditt projekt samtidigt som du bara rör en enda fil.
Se Namngivning av URL-mönster för varför argumentet name är användbart.
re_path()¶
- re_path(route, view, kwargs=None, name=None)¶
Returnerar ett element som kan ingå i urlpatterns. Till exempel:
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")),
...,
]
The route argument should be a string or
gettext_lazy() (see
Översättning av URL-mönster) that contains a regular expression compatible
with Python’s re module. Strings typically use raw string syntax
(r'') so that they can contain sequences like \d without the need to
escape the backslash with another backslash. When a match is made, captured
groups from the regular expression are passed to the view – as named arguments
if the groups are named, and as positional arguments otherwise. The values are
passed as strings, without any type conversion.
When a route ends with $ the whole requested URL, matching against
path_info, must match the regular expression
pattern (re.fullmatch() is used).
The view, kwargs and name arguments are the same as for
path().
include()¶
- include(module, namespace=None)[source]¶
- include(pattern_list)
- include((pattern_list, app_namespace), namespace=None)
En funktion som tar en fullständig Python-importväg till en annan URLconf-modul som ska ”inkluderas” på denna plats. Eventuellt kan även application namespace och instance namespace där posterna ska inkluderas i anges.
Vanligtvis bör applikationens namnrymd anges av den inkluderade modulen. Om ett applikationsnamnområde har angetts kan argumentet
namespaceanvändas för att ange ett annat instansnamnområde.include()accepterar också som argument antingen en iterabel som returnerar URL-mönster eller en 2-tupel som innehåller en sådan iterabel plus namnen på applikationens namnrymder.
Se Inkludera andra URLconfs och URL-namnrymder och inkluderade URL-konf.
registrera_omvandlare()¶
The function for registering a converter for use in path()
routes.
Argumentet converter är en konverterarklass och type_name är det konverterarnamn som ska användas i sökvägsmönster. Se Registrering av anpassade sökvägsomvandlare för ett exempel.
django.conf.urls funktioner för användning i URLconfs¶
static()¶
- static.static(prefix, view=django.views.static.serve, **kwargs)¶
Hjälpfunktion för att returnera ett URL-mönster för att visa filer i felsökningsläge:
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)
Handläggare400¶
- handler400¶
En callable, eller en sträng som representerar den fullständiga Python-importsökvägen till den vy som ska anropas om HTTP-klienten har skickat en begäran som orsakade ett feltillstånd och ett svar med statuskod 400.
Som standard är detta django.views.defaults.bad_request(). Om du implementerar en anpassad vy, se till att den accepterar request och exception argument och returnerar en HttpResponseBadRequest.
Handläggare403¶
- handler403¶
En anropsbar vy, eller en sträng som representerar den fullständiga Python-importsökvägen till den vy som ska anropas om användaren inte har de behörigheter som krävs för att komma åt en resurs.
Som standard är detta django.views.defaults.permission_denied(). Om du implementerar en anpassad vy, se till att den accepterar argumenten request och exception och returnerar en HttpResponseForbidden.
Handläggare404¶
- handler404¶
En anropsbar vy, eller en sträng som representerar den fullständiga Python-importsökvägen till den vy som ska anropas om inget av URL-mönstren matchar.
Som standard är detta django.views.defaults.page_not_found(). Om du implementerar en anpassad vy, se till att den accepterar request och exception argument och returnerar en HttpResponseNotFound.
handläggare500¶
- handler500¶
En callable, eller en sträng som representerar den fullständiga Python-importsökvägen till den vy som ska anropas vid serverfel. Serverfel inträffar när du har körtidsfel i vykoden.
Som standard är detta django.views.defaults.server_error(). Om du implementerar en anpassad vy, se till att den accepterar ett request-argument och returnerar en HttpResponseServerError.