zoukankan      html  css  js  c++  java
  • auth模块---笔记

    1.auth模块的登录验证:

    ①只要登录的页面有用户名和密码就可以使用django提供的User表中的验证系统进行验证,可以把用户的账号和密码存到User对象表中,然后拿出来进行验证

    1.from django.contrib import auth
    
    2.def login(request):
        if request.method == "POST":
            username = request.POST.get("username")
            pwd = request.POST.get("password")
            # 如何判断用户名和密码对不对
            user = auth.authenticate(username=username, password=pwd)   #第一个是User表中的字段名                                                    #称,第二个是传进来参数名称
            if user:
                # 将登录的用户封装到request.user
                auth.login(request, user)
                return redirect("/index/")
        return render(request, "login.html")
    
    3.def index(request):
         # 取出封装到request.user中的用户名信息,返回浏览器中user是字符串,而请求来时候中间件会把user从数
         #据库中取出来,转为一个对象
        print(request.user.username)
        print("=" * 120)
        return render(request, "index.html")
    

    如下图所示为源码

    image-20200622092433333

    4.def logout(request):         # 清楚request.user中信息
        auth.logout(request)
        return redirect("/login/")
    
    5.from django.contrib.auth.decorators import login_required
    
    @login_required            # 如果没有登录,默认跳转到那个URL,在setting中配置
                                #LOGIN_URL = "/login/",否则执行index函数体中代码
    def index(request):
        print(request.user.username)
        print("=" * 120)
        ret = request.user.is_authenticated()
        print(ret)
        return render(request, "index.html")
    

    2.User对象:

    1.ret = user.is_authenticated()     # 判断是否验证过了
    
    2.def register(request):
        from django.contrib.auth.models import User
        User.objects.create(username="alex", password="alexdsb")  #这个写法错误,以明文存入表,但是                                        #登录时候要进行转换,因此匹配不上密码
    3.user_obj = User.objects.create_user(username="alex5", password="alexdsb")
        # 校验密码是否正确
        ret = user_obj.check_password("alex1234")
    4.   user_obj.set_password("alex3714")     #修改密码
        user_obj.save()
    

    3.如何扩展自带的auth_user表:

    1.from django.contrib.auth.models import User
    
    class UserDetail(models.Model):
        phone = models.CharField(max_length=11)
        user = models.OneToOneField(to=User)
        
    2.from django.contrib.auth.models import User, AbstractUser
    
    class UserInfo(AbstractUser):
        phone = models.CharField(max_length=11)
        addr = models.CharField(max_length=128)
    
  • 相关阅读:
    Silverlight 学习笔记(二)silverligth 界面布局
    (C#)WinForm窗体间传值
    软件开发所需要的十三个文档
    XP下安装SQL2000企业版本(转载)
    .net 框架下快速Web开发(一)——纠结的里程
    .net MVC 框架调试过程中,产生大量的临时文件
    认识NHitenate
    如何循序渐进向.Net架构师发展[转载]
    核桃煲鸡汤
    .NET获取客户端信息 (C#)
  • 原文地址:https://www.cnblogs.com/zhuxianxiaofan/p/13175646.html
Copyright © 2011-2022 走看看