django.urls
funktioner för användning i URLconfs¶
Sökväg()`
¶
- 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
¶
Argumentet route
bör vara en sträng eller gettext_lazy()
(se Översättning av URL-mönster) som innehåller ett URL-mönster. Strängen kan innehålla vinkelparenteser (som <username>
ovan) för att fånga en del av URL:en och skicka den som ett nyckelordsargument till vyn. Vinkelparenteserna kan innehålla en konverteringsspecifikation (som int
-delen av <int:section>
) som begränsar de tecken som matchas och kan också ändra typen av variabel som skickas till vyn. Exempelvis matchar <int:section>
en sträng med decimalsiffror och konverterar värdet till ett 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 :ref:hur-django-bearbetar-en-begäran
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")),
...,
]
Argumentet route
bör vara en sträng eller gettext_lazy()
(se Översättning av URL-mönster) som innehåller ett reguljärt uttryck som är kompatibelt med Pythons modul re
. Strängar använder vanligtvis rå strängsyntax (r''
) så att de kan innehålla sekvenser som d
utan att behöva undkomma backslash med en annan backslash. När en träff görs skickas fångade grupper från det reguljära uttrycket till vyn - som namngivna argument om grupperna är namngivna och som positionella argument i annat fall. Värdena skickas som strängar, utan någon typkonvertering.
När en route
slutar med $
måste hela den begärda URL:en, som matchas mot path_info
, matcha det reguljära uttrycksmönstret (re.fullmatch()
används).
Argumenten view
, kwargs
och name
är desamma som för 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
namespace
anvä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()
¶
Funktionen för att registrera en omvandlare för användning i path()``route`()
.
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.
Ersatt sedan version 5.1: Åsidosättande av befintliga omvandlare är föråldrat.
django.conf.urls
funktioner för användning i URLconfs¶
statisk()`
¶
- 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
.