ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-09-25 18:06:39  阅读:233  来源: 互联网

标签:dj 19 鲜生 request 用户 认证 user login 登陆


登陆路由

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

在这里插入图片描述

登陆视图

在这里插入图片描述

页面渲染,get请求

在这里插入图片描述

移下来

在这里插入图片描述

测试,页面的效果

在这里插入图片描述

样式的补齐

静态路径配好

主要用到的技术点

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

    {% load staticfiles %}

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

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

在这里插入图片描述

》弄好后的效果

在这里插入图片描述

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

post请求开始

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

post请求

关注控件的name值

在这里插入图片描述

post提交,需要加上csrf token

在这里插入图片描述

视图收数据

在这里插入图片描述

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

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

1.x版本的认证

在这里插入图片描述

用户认证2.x版本

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

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

测试认证的效果

在这里插入图片描述
结果

在这里插入图片描述

登陆的细节处理

用户认证成功的情况

在这里插入图片描述

在这里插入图片描述

用户认证失败的情况

在这里插入图片描述

完整 的代码


# /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": "用户名或者密码错误"})

标签:dj,19,鲜生,request,用户,认证,user,login,登陆
来源: https://blog.csdn.net/ifubing/article/details/101372732

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有