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 ska 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 konverterarspecifikation (som delen int i <int:section>) som begränsar de tecken som matchas och även kan ändra typen på variabeln som skickas till vyn. <int:section> matchar till exempel en sträng med decimala siffror och konverterar värdet till en 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 ska vara en sträng eller gettext_lazy() (se Översättning av URL-mönster) som innehåller ett reguljärt uttryck kompatibelt med Pythons modul re. Strängar använder vanligen syntax för råa strängar (r'') så att de kan innehålla sekvenser som \d utan att omvänt snedstreck behöver undantas med ytterligare ett omvänt snedstreck. När en träff görs skickas fångade grupper från det reguljära uttrycket till vyn – som namngivna argument om grupperna har namn, annars som positionsargument. Värdena skickas som strängar utan typkonvertering.
När en route slutar med $ måste hela den begärda URL:en, som matchas mot path_info, matcha mönstret för det reguljära uttrycket (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 konverterare för användning i path()-route-mönster.
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.