[python]Django 用户认证(Auth)组件
from django.contrib.auth import authenticate, login
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
from django.shortcuts import redirect
# 用户登录视图
def user_login(request):
# 如果是通过POST请求进行登录
if request.method == 'POST':
# 获取用户名和密码
username = request.POST.get('username')
password = request.POST.get('password')
# 使用 Django 的 authenticate 函数来验证用户名和密码
user = authenticate(request, username=username, password=password)
# 如果用户验证成功
if user is not None:
# 用户登录
login(request, user)
# 重定向到首页或其他页面
return redirect('index')
else:
# 如果用户名或密码不正确,返回错误信息
return HttpResponse('Invalid login credentials')
# 如果不是通过POST请求,则显示登录页面
return render(request, 'login.html')
# 必须登录才能访问的视图
@login_required
def secret_page(request):
# 只有登录用户可以看到的内容
return HttpResponse('Secret content for logged-in users.')
这个代码示例展示了如何在Django中实现用户登录功能。首先,我们定义了一个视图函数user_login
来处理登录请求。如果请求方法是POST,我们获取用户名和密码,然后使用Django的authenticate
函数来验证用户名和密码。如果验证成功,我们使用login
函数来登录用户,并重定向到首页。如果验证失败,我们返回错误信息。对于非登录请求,我们渲染登录页面。另外,我们定义了一个使用@login_required
装饰器的视图函数secret_page
,这个视图函数只有在用户登录后才能访问。
评论已关闭