1. @login_required: 限制对视图的访问,只有已登录的用户才能访问。
from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
# 视图逻辑
2. @permission_required: 限制对视图的访问,只有具有指定权限的用户才能访问。
from django.contrib.auth.decorators import permission_required
@permission_required('myapp.can_view_data')
def my_view(request):
# 视图逻辑
3. @require_http_methods: 限制视图只能接受指定的 HTTP 方法。
from django.http import HttpResponse
from django.views.decorators.http import require_http_methods
@require_http_methods(["GET", "POST"])
def my_view(request):
# 视图逻辑
4. @cache_page: 缓存视图的输出。
from django.views.decorators.cache import cache_page
@cache_page(60 * 15) # 缓存 15 分钟
def my_view(request):
# 视图逻辑
5. @require_POST / @require_GET / @require_safe: 分别要求视图只能接受 POST、GET、或者幂等(safe)的 HTTP 请求。
from django.http import HttpResponse
from django.views.decorators.http import require_POST, require_GET, require_safe
@require_POST
def my_post_view(request):
# 只接受 POST 请求的视图逻辑
@require_GET
def my_get_view(request):
# 只接受 GET 请求的视图逻辑
@require_safe
def my_safe_view(request):
# 只接受幂等请求(GET, HEAD, OPTIONS)的视图逻辑
这些只是 Django 中一些内置的视图装饰器示例。你还可以创建自定义的装饰器来满足你的特定需求。确保查阅 Django 4.0 的官方文档,以获取最新的信息。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7215/Django