dj鲜生-19-登陆功能-利用内置认证体系

登陆路由

    path('login/', views.Login.as_view(), name='login'),  # 登陆

dj鲜生-19-登陆功能-利用内置认证体系

登陆视图

dj鲜生-19-登陆功能-利用内置认证体系

页面渲染,get请求

dj鲜生-19-登陆功能-利用内置认证体系

移下来

dj鲜生-19-登陆功能-利用内置认证体系

测试,页面的效果

dj鲜生-19-登陆功能-利用内置认证体系

样式的补齐

静态路径配好

主要用到的技术点

》在模板页导入静态的配置

    {% load staticfiles %}

》利用静态配置拼接路径,例如

{% static 'css/reset.css' %}

dj鲜生-19-登陆功能-利用内置认证体系

》弄好后的效果

dj鲜生-19-登陆功能-利用内置认证体系

http://127.0.0.1:8000/user/login/

post请求开始

前端表单的相关修改和关注

post请求

关注控件的name值

dj鲜生-19-登陆功能-利用内置认证体系

post提交,需要加上csrf token

dj鲜生-19-登陆功能-利用内置认证体系

视图收数据

dj鲜生-19-登陆功能-利用内置认证体系

认证用户的登陆 1.x版本

直接使用django自带的认证体系

1.x版本的认证

dj鲜生-19-登陆功能-利用内置认证体系

用户认证2.x版本

在1.x的认证基础上,还需要在配置中加上一段代码

# 认证不自动关联数据库的is_active
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.AllowAllUsersModelBackend']

测试认证的效果

dj鲜生-19-登陆功能-利用内置认证体系
结果

dj鲜生-19-登陆功能-利用内置认证体系

登陆的细节处理

用户认证成功的情况

dj鲜生-19-登陆功能-利用内置认证体系

dj鲜生-19-登陆功能-利用内置认证体系

用户认证失败的情况

dj鲜生-19-登陆功能-利用内置认证体系

完整 的代码


# /user/login
class LoginView(View):
    def get(self, request):
        # 渲染页面
        return render(request, "login.html")

    def post(self, request):
        # 用户登陆

        # 1,接收数据
        username = request.POST.get("username")
        password = request.POST.get("password")
        print(username)
        print(password)
        # 2,校验数据
        from django.contrib.auth import authenticate
        user = authenticate(username=username, password=password)
        # 如果用户验证成功
        if user is not None:
            print('user, is active', user, user.is_active)
            # 如果用户已激活
            if user.is_active:
                # 3,登陆逻辑
                print('登陆用户')
                from django.contrib.auth import login
                login(request, user)
                print('页面跳转')
                return redirect(reverse("goods:index"))
            # 用户未激活
            else:
                return render(request, "login.html", {"errmsg":"用户未激活"})
        # 如果用户验证不成功
        else:
            return render(request, "login.html", {"errmsg": "用户名或者密码错误"})
上一篇:OpenJFX DJ 风格 Java 桌面音乐播放器


下一篇:神经网络和深度学习(一)神经网络基础