# Django 5.2.8 documentation

# 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)

  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ör `require_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.

condition(etag_func=None, last_modified_func=None)

conditional_page()

  Denna dekorator tillhandahåller den villkorliga GET-operationshanteringen av `ConditionalGetMiddleware` till en vy.

etag(etag_func)

last_modified(last_modified_func)

  Dessa dekoratorer kan användas för att generera rubrikerna `ETag` och `Last-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å rubriken `Accept-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)

vary_on_headers(*headers)

  Rubriken `Vary` definierar vilka request-rubriker som en cachemekanism ska ta hänsyn till när den bygger upp sin cache-nyckel.

  Se använda varierande rubriker.

## Cachning

Dekoratorerna i `django.views.decorators.cache` styr cachelagring på server- och klientsidan.

cache_control(**kwargs)

  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.

never_cache(view_func)

  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()

  Med denna dekorator kan enskilda vyer uteslutas från `APPEND_SLASH` URL-normalisering.