美文网首页
django自带认证

django自带认证

作者: 玄月府的小妖在debug | 来源:发表于2016-06-17 10:55 被阅读351次

    1.login()之前必须有 user = authenticate(username, password)

    2.如果登录成功,request.user.is_authenticated() 返回为True,可以从request.user.username中获取当前用户名

    代码修改

    1.settings.py
    注释掉django.middleware.csrf.CsrfViewMiddleware
    2.template

    • Form
      将方法都改为post
      将页面重构
      top是导航栏——将导航栏右侧的登录注册添加{% if uname %}标签,
      base是页面框架
      各个页面基本都是base的{content}中的内容
      3.models
      将自定义的User命名更改成Users,不要跟auth.models里的冲突
      在Users中添加方法create_user,在创建Users的同时也创建User

    4.views.py/weibologin
    import部分

    增加 from django.contrib.auth import login,logout,authenticate
    增加 from django.http import HttpResponseRedirect
    更改 from weibologin.models import User->Users
    增加 from django.contrib.auth.decorators import login_required——装饰器,限制登录才可以访问```
    
    
    5.``` registersave``` 中
    - 将成功注册的函数改乘Users.create_user
    - 增加login()函数
    - 将return的字典列表里增加{'uname': request.user.username}——对应template里也要修改
    
    
    6.``` logincheck```里增加
    ```user = authenticate(username = "POST过来的值",password="POST过来的值")
    login(requst,user)```
    
    7.```models.py/weibologin```
    

    from django.contrib import auth
    from django.contrib.auth.models import User
    from django.contrib.auth import authenticate```

    def create_myUser(uname,psword): 
       Users.objects.create(name=uname,password=psword,login_type=0)    
       user=User()    
       user.username=uname    
       user.set_password(psword)   
       user.save()
    def create_weiboUser(wname,psword): 
          Users.objects.create(name=wname,password=psword,login_type=1)    
          user=User()    
          user.username=wname    
          user.set_password(psword)   
          user.save()```

    相关文章

      网友评论

          本文标题:django自带认证

          本文链接:https://www.haomeiwen.com/subject/bdfsrttx.html