Django 使用 @login_required 实现登录验证与跳转
本文介绍如何在 Django 中利用 @login_required 装饰器实现简单的登录验证。通过配置 settings.py 中的 LOGIN_URL 参数,未登录用户访问受限页面时会自动跳转至登录界面,登录成功后则自动返回原访问地址。
核心机制
Django 提供了内置的 @login_required 装饰器,用于保护视图函数。其核心逻辑如下:
- 检查用户是否已登录。
- 若未登录,将用户重定向到登录页面。
- 若已登录,则执行视图函数。
该机制能确保未授权用户无法直接访问受保护的页面,并在登录成功后自动跳转回之前尝试访问的地址。
配置步骤
1. 配置登录页面 URL
在项目的 settings.py 文件中,需要指定登录页面的 URL 路径。这通过 LOGIN_URL 参数完成:
LOGIN_URL="/login/"此配置告诉 Django,当用户未登录时,应将其重定向到 /login/ 路径。
2. 在视图函数应用装饰器
在需要登录验证的视图函数定义前,添加 @login_required 装饰器。例如,在一个修改密码的视图函数中:
@login_required
def change_pwd(request):
if request.method=="GET":
pass
if request.method=="POST":
username=request.session.get("user")
u = User.objects.get(username=username)
u.set_password('new_password')
u.save()在此示例中,change_pwd 函数受到保护。只有登录用户才能访问此视图。当用户尝试访问此页面但未登录时,Django 会自动将其重定向到 settings.py 中配置的 LOGIN_URL 指定的页面。
注意事项
- 确保
LOGIN_URL指向的视图能够正确处理登录逻辑。 - 在视图函数中,可以通过
request.user获取当前登录用户的信息。 - 若用户未登录,
request.user将是一个AnonymousUser对象。
以上就是 Django 使用 @login_required 实现登录验证与跳转的详细内容,更多关于 Django 视图装饰器的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









