前言:
如今在网站的编写中无不和用户息息相关,用户登录后的页面是没有登录是进不来的。在 Django 中也考虑到了这一点特制了 login_required 这个装饰器来完成
开始:
- 首先现在 setting.py 文件中添加这个全局配置
LOGIN_URL = '/xadmin/'
# 登录页面的路径
- 在需要的 def 函数上使用这个装饰器
@login_required
def test2(request):
return render(request, 'index.html')
View 创建的 class 中使用:
@method_decorator(login_required, name='dispatch')
class Index(View):
def get(self, request):
return render(request, 'index.html')
def post(self, request):
return render(request, 'index.html')
如果你只想指定的一种提交方式才验证也可以
@method_decorator(login_required, name='get')
class Index(View):
def get(self, request):
"""
这里一旦请求就会被验证
"""
return render(request, 'index.html')
def post(self, request):
return render(request, 'index.html')
@method_decorator(login_required, name='post')
class Index(View):
def get(self, request):
return render(request, 'index.html')
def post(self, request):
"""
这里一旦请求就会被验证
"""
return render(request, 'index.html')
所有的方法本质上都是通过 dispatch 这个函数反射执行,如果想要在执行 get 或 post 方法前执行其他步骤,可以重写 dispatch。