Login
网站首页 > 文章中心 > 其它

Django用户身份验证完成示例代码

作者:小编 更新时间:2023-09-28 09:53:56 浏览量:134人看过

关于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用户身份验证完成示例代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章