Visa dekoratörer¶
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.
Tillåtna HTTP-metoder¶
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.
- require_http_methods(request_method_list)[source]¶
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.
- require_GET()¶
Decorator för att kräva att en vy endast accepterar GET-metoden.
- require_POST()¶
Decorator för att kräva att en vy endast accepterar POST-metoden.
- require_safe()¶
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örrequire_GET
.
Behandling av villkorlig vy¶
Följande dekoratorer i django.views.decorators.http
kan användas för att styra cachelagringsbeteendet för vissa vyer.
- conditional_page()¶
Denna dekorator tillhandahåller den villkorliga GET-operationshanteringen av
ConditionalGetMiddleware
till en vy.
- last_modified(last_modified_func)[source]¶
Dessa dekoratorer kan användas för att generera rubrikerna
ETag
ochLast-Modified
; se betingad vybehandling.
GZip-komprimering¶
Dekoratörerna i django.views.decorators.gzip
styr innehållskomprimering per vy.
- gzip_page()¶
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å rubrikenAccept-Encoding
.
Variera rubriker¶
Dekoratörerna i django.views.decorators.vary
kan användas för att styra cachelagring baserat på specifika förfrågningsrubriker.
- vary_on_cookie(func)¶
Cachning¶
Dekoratorerna i django.views.decorators.cache
styr cachelagring på server- och klientsidan.
- cache_control(**kwargs)[source]¶
Denna dekorator patchar svarets
Cache-Control
-rubrik genom att lägga till alla nyckelordsargument till den. Sepatch_cache_control()
för detaljer om omvandlingen.
- never_cache(view_func)[source]¶
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.
Standard¶
Dekoratorerna i django.views.decorators.common
tillåter anpassning per vy av CommonMiddleware
beteende.
- no_append_slash()[source]¶
Med denna dekorator kan enskilda vyer uteslutas från
APPEND_SLASH
URL-normalisering.