关于Django用户身份验证完成示例代码,我们可以大概分为以下两个部分进行讲解:
认证机制设置
在开始编写代码前,我们需要先在Django工程下设置好认证机制.具体做法如下:
(1)在settings.py文件中找到INSTALLED_APPS(已安装应用列表)这个配置项,在其中添加django.contrib.auth模块.
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'
这将使得用户在登录成功或登出成功后都默认跳转到网站首页,你可以根据实际需求进行修改.
示例代码
下面是两个示例代码,分别是用户注册和登录的示例,其中两段代码都涉及到用户身份验证的步骤.
(1)用户注册的示例代码:
from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django.contrib import auth, messages
def register(request):
if request.method == 'POST':
# 获取用户输入的注册信息
username = request.POST['username']
email = request.POST['email']
password1 = request.POST['password1']
password2 = request.POST['password2']
# 校验两次输入的密码是否相同
if password1 == password2:
try:
# 创建新用户
user = User.objects.create_user(username, email, password1)
user.save()
auth.login(request, user) # 自动登录
messages.success(request, '注册成功')
return redirect('/')
except:
messages.error(request, '注册失败,请稍后再试')
else:
messages.error(request, '两次输入的密码不相同')
return render(request, 'register.html')
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from django.contrib import messages
def user_login(request):
if request.method == 'POST':
# 获取用户输入的登录信息
username = request.POST['username']
password = request.POST['password']
# 校验登录信息
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
messages.success(request, '登录成功')
return redirect('/')
else:
messages.error(request, '用户名或密码错误')
return render(request, 'login.html')
在这段示例代码中,我们创建了一个user_login函数来处理用户登录请求.在用户POST提交了登录信息之后,我们首先获取到用户在表单中填写的Django用户身份验证完成示例代码相关咨询,然后使用Django的内置authenticate方法来校验用户输入的用户名和密码,如果校验通过,我们再调用login方法将用户信息保存到请求对应的session中,同时使用messages.success()向用户反馈一个登录成功的消息,并跳转到首页.如果用户名或密码错误,则会调用messages.error()向用户提示登录失败的消息.
以上就是土嘎嘎小编为大家整理的Django用户身份验证完成示例代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!