Django tillhandahåller flera dekoratorer som kan tillämpas på vyer för att stödja olika HTTP-funktioner.
Se Inredning av klassen för hur man använder dessa dekoratorer med klassbaserade vyer.
Dekoratörerna i django.views.decorators.http kan användas för att begränsa åtkomsten till vyer baserat på förfrågningsmetoden. Dessa dekoratorer kommer att returnera en django.http.HttpResponseNotAllowed om villkoren inte uppfylls.
Dekorator för att kräva att en vy endast accepterar vissa förfrågningsmetoder. Användning:
from django.views.decorators.http import require_http_methods
@require_http_methods(["GET", "POST"])
def my_view(request):
# I can assume now that only GET or POST requests make it this far
# ...
pass
Observera att metoder för begäran ska skrivas med versaler.
Decorator för att kräva att en vy endast accepterar GET-metoden.
Decorator för att kräva att en vy endast accepterar POST-metoden.
Decorator för att kräva att en vy endast accepterar GET- och HEAD-metoderna. Dessa metoder anses vanligen vara ”säkra” eftersom de inte bör ha någon annan betydelse än att de hämtar den begärda resursen.
Observera
Webbservrar bör automatiskt ta bort innehållet i svar på HEAD-begäranden medan rubrikerna lämnas oförändrade, så du kan hantera HEAD-begäranden precis som GET-begäranden i dina vyer. Eftersom vissa program, t.ex. länkgranskare, förlitar sig på HEAD-begäranden, kanske du föredrar att använda require_safe i stället för require_GET.
Följande dekoratorer i django.views.decorators.http kan användas för att styra cachelagringsbeteendet för vissa vyer.
Denna dekorator tillhandahåller den villkorliga GET-operationshanteringen av ConditionalGetMiddleware till en vy.
Dessa dekoratorer kan användas för att generera rubrikerna ETag och Last-Modified; se betingad vybehandling.
Dekoratörerna i django.views.decorators.gzip styr innehållskomprimering per vy.
Denna dekorator komprimerar innehåll om webbläsaren tillåter gzip-komprimering. Den ställer in rubriken Vary i enlighet med detta, så att cacheminnet baserar sin lagring på rubriken Accept-Encoding.
Dekoratörerna i django.views.decorators.vary kan användas för att styra cachelagring baserat på specifika förfrågningsrubriker.
Dekoratorerna i django.views.decorators.cache styr cachelagring på server- och klientsidan.
Denna dekorator patchar svarets Cache-Control-rubrik genom att lägga till alla nyckelordsargument till den. Se patch_cache_control() för detaljer om omvandlingen.
Denna dekoratör lägger till en Expires rubrik till aktuellt datum/tid.
Denna dekoratör lägger till en Cache-Control: max-age=0, no-cache, no-store, must-revalidate, private rubrik till ett svar för att ange att en sida aldrig ska cachas.
Varje rubrik läggs bara till om den inte redan är inställd.
Dekoratorerna i django.views.decorators.common tillåter anpassning per vy av CommonMiddleware beteende.
Med denna dekorator kan enskilda vyer uteslutas från APPEND_SLASH URL-normalisering.
aug. 11, 2025