django自带认证

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自带认证)