Django之COOKIES和SESSION

装饰器
	验证cookies
    def user_decorater(func):
        def inner(request, *args, **kwargs):
            username = request.COOKIES.get('username')
            password = request.COOKIES.get('password')
            usr_lst = models.User.objects.filter(name=username, pwd=password)
            if usr_lst:
                return func(request, *args, **kwargs)
            else:
                return redirect('/login/')
    
        return inner
    
    post请求时提交数据
    def login(request):
        if request.method == 'POST':
            username = request.POST.get('username')
            password = request.POST.get('pwd')
            usr_lst = models.User.objects.filter(name=username, pwd=password)
            print(usr_lst)
            if usr_lst:
                ret = redirect('/success/')
                ret.set_cookie('username', username)
                ret.set_cookie('password', password)
                return ret
        return render(request, 'login.html')
验证session
def success_session(request):
    username = request.session.get('name')
    password = request.session.get('pwd')
    usr_lst = models.User.objects.filter(name=username, pwd=password)
    if usr_lst:
        return render(request,'success_session.html')
    else:
        return redirect('/login_session/')

post请求提交数据
def login_session(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('pwd')
        usr_lst = models.User.objects.filter(name=username, pwd=password)
        if usr_lst:
            #将用户名和密码保存到session中
            request.session['name'] = username
            request.session['pwd'] = password

            return redirect('/success_session/')
    return render(request,'login_session.html')

猜你喜欢

转载自blog.csdn.net/weixin_44183162/article/details/88081780
今日推荐