自带的验证方式auth
1.需要导入系统自带的user表——在用migrate的时候自动生成的,然后需要注册帐号,也就是说在user表中需要有数据
from django.contrib.auth.models import User
所以命名的时候不要用User这个名字
1. 写注册方式,跳转到登录方式
# 注册
def djregist(request):
if request.method == 'GET':
return render(request, 'register.html')
if request.method == 'POST':
name = request.POST.get('name')
password = request.POST.get('password')
User.objects.create_user(username=name, password=password)
return HttpResponseRedirect('/uau/djlo/')
2.写登录方式
需要导入auth函数
先给用户写入登录页面,验证成功,保存到login中同时去到网站首页
如果失败返回当前登录页面
from django.contrib import auth
# 自带的验证方式
def djlogin(request):
if request.method == 'GET':
return render(request, 'longin.html')
if request.method == 'POST':
name = request.POST.get('name')
password = request.POST.get('password')
# 验证用户密码和账户,通过的话返回user对象
u = auth.authenticate(username=name, password=password)
if u:
# 验证成功 绑定到login中方便后面验证
auth.login(request, u)
return HttpResponseRedirect('/st/index/')
else:
return HttpResponseRedirect('/uau/djlo/')
3.注销,返回登录页面
# 退出
def djout(request):
if request.method == 'GET':
auth.logout(request)
return HttpResponseRedirect('/uau/djlo/')
页面需要验证
urls中写:表示需要验证才能进去(省略中间键)
login_required()
url(r'^add/', login_required(views.addStu), name='add'),
没登录的时候跳转页面,以至于不会报错
setting中
LOGIN_URL = ‘/uau/djlo/’