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 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.

Parametrar:
  • module – URLconf-modul (eller modulnamn)

  • namespace (str) – Instansnamnområde för de URL-poster som inkluderas

  • pattern_list – Iterabel av path() och/eller re_path() instanser.

  • app_namespace (str) – Applikationsnamnrymd för de URL-poster som inkluderas

Se Inkludera andra URLconfs och URL-namnrymder och inkluderade URL-konf.

registrera_omvandlare()

register_converter(converter, type_name)[source]

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.