login_required()
是 Django 中一个常用的装饰器函数,用于限制只有用户登录后才能访问特定的视图函数。
作用
login_required()
函数的作用就是控制视图函数的访问权限,当用户未登录时,访问被装饰的视图函数将会被重定向到登录页面。
使用方法
首先要在视图函数的头部导入该装饰器 from django.contrib.auth.decorators import login_required
。
然后在需要进行验证的视图函数上添加 @login_required
装饰器,即可限制只有登录的用户才能访问该视图函数。
例如:
from django.contrib.auth.decorators import login_required
from django.shortcuts import render
@login_required
def my_account(request):
return render(request, 'my_account.html')
以上代码将会把 my_account
视图函数装饰成一个只能登录用户访问的视图函数。
实例说明
示例一
用户只有登陆后才能查看自己的账户信息。在 views.py
中加入以下代码:
from django.contrib.auth.decorators import login_required
from django.shortcuts import render
@login_required
def account(request):
# 该视图允许已登录用户访问
return render(request, 'account.html')
示例二
用户只有在已经登陆后才能对商品进行评论。在 views.py
中加入以下代码:
from django.contrib.auth.decorators import login_required
from django.shortcuts import render
@login_required
def comment(request):
# 该视图允许已登录用户访问
return render(request, 'comment.html')
以上代码将会把 comment
视图函数装饰成一个只能登录用户访问的视图函数。