1.login()之前必須有 user = authenticate(username, password)
2.如果登錄成功龄寞,request.user.is_authenticated() 返回為True,可以從request.user.username中獲取當(dāng)前用戶名
代碼修改
1.settings.py
注釋掉django.middleware.csrf.CsrfViewMiddleware
2.template
- Form
將方法都改為post
將頁(yè)面重構(gòu)
top是導(dǎo)航欄——將導(dǎo)航欄右側(cè)的登錄注冊(cè)添加{% if uname %}標(biāo)簽仅醇,
base是頁(yè)面框架
各個(gè)頁(yè)面基本都是base的{content}中的內(nèi)容
3.models
將自定義的User命名更改成Users艺晴,不要跟auth.models里的沖突
在Users中添加方法create_user昼钻,在創(chuàng)建Users的同時(shí)也創(chuàng)建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——裝飾器,限制登錄才可以訪問(wèn)```
5.``` registersave``` 中
- 將成功注冊(cè)的函數(shù)改乘Users.create_user
- 增加login()函數(shù)
- 將return的字典列表里增加{'uname': request.user.username}——對(duì)應(yīng)template里也要修改
6.``` logincheck```里增加
```user = authenticate(username = "POST過(guò)來(lái)的值",password="POST過(guò)來(lái)的值")
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()```