1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- ===============
- View Decorators
- ===============
- .. currentmodule:: django.views.decorators.http
- Django provides several decorators that can be applied to views to support
- various HTTP features.
- Allowed HTTP Methods
- ====================
- .. function:: require_http_methods(request_method_list)
- This decorator is used to make a view only accept particular request methods.
- Usage::
- 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
- Note that request methods should be in uppercase.
- .. function:: require_GET()
- Decorator to require that a view only accept the GET method.
- .. function:: require_POST()
- Decorator to require that a view only accept the POST method.
- Conditional view processing
- ===========================
- .. function:: condition(etag_func=None, last_modified_func=None)
- .. function:: etag(etag_func)
- .. function:: last_modified(last_modified_func)
- These decorators can be used to generate ``ETag`` and ``Last-Modified``
- headers; see
- :doc:`conditional view processing </topics/conditional-view-processing>`.
- .. currentmodule:: django.views.decorators.http
- GZip Compression
- ================
- .. function:: gzip_page()
- This decorator compresses content if the browser allows gzip compression.
- It sets the ``Vary`` header accordingly, so that caches will base their
- storage on the ``Accept-Encoding`` header.
- .. currentmodule:: django.views.decorators.vary
- Vary Headers
- ============
- The ``Vary`` header defines which request headers a cache mechanism should take
- into account when building its cache key.
- .. function:: vary_on_cookie(func)
- .. function:: vary_on_headers(*headers)
- See :ref:`using vary headers <using-vary-headers>`.
|