Django自带验证登录账户的方法(不用cookie值)

自带的验证方式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/’

猜你喜欢

转载自blog.csdn.net/qq_41781877/article/details/80185699