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¶
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 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")),
...,
]
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
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()¶
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.
Deprecated since version 5.1: Åsidosättande av befintliga omvandlare är föråldrat.
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.