博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django中的cookie和session实现
阅读量:5281 次
发布时间:2019-06-14

本文共 2618 字,大约阅读时间需要 8 分钟。

cookie

 

from django.shortcuts import render, HttpResponse, redirect# 此装饰器的作用就是讲所有没有cookie验证的页面都需要验证后方可跳转def login_required(fun):    def inner(request, *args, **kwargs):        if not request.COOKIES.get('is_login') == '1':            next = request.path_info            print('next', next)            return redirect('/login/?next={}'.format(next))  # 如果没有cookie,就需要跳转登录页面,但是将此页面的路径拼接到url上        ret = fun(request, *args, **kwargs)        return ret    return innerdef login(request):    if request.method == 'POST':        print(request.get_full_path())        user = request.POST.get('user')        pwd = request.POST.get('pwd')        if user == '1' and pwd == '1':            next = request.GET.get('next')            if next:                ret = redirect(next)            else:                ret = redirect('/index/')            ret.set_cookie('is_login', '1', max_age=5)  # 设置cookie {"is_login": '1'} 存储方式为键值对, max_age = 设置过期时间            return ret    return render(request, 'login.html')@login_requireddef index(request):    return render(request, 'index.html')@login_requireddef logout(request):    ret = redirect('/login/')    ret.delete_cookie('is_login')  # 删除cookie    return ret@login_requireddef home(request):    return HttpResponse('这是home页面')

 

 

 

sesson

 

from django.shortcuts import render, HttpResponse, redirect# 此装饰器的作用就是讲所有没有session验证的页面都需要验证后方可跳转def login_required(fn):    def inner(request, *args, **kwargs):        if not request.session.get('is_login') == '1':            next = request.path_info            return redirect('/login/?next={}'.format(next))        ret = fn(request, *args, **kwargs)        return ret    return innerdef login(request):    if request.method == 'POST':        user = request.POST.get('user')        pwd = request.POST.get('pwd')        if user == '1' and pwd == '1':            next = request.GET.get('next')            if next:                ret = redirect(next)            else:                ret = redirect('/index/')            request.session['is_login'] = '1'  # 设置session            request.session.set_expiry(5)  # 设置超时间            return ret    return render(request, 'login.html')@login_requireddef home(request):    return HttpResponse('这是home页面')@login_requireddef index(request):    print(request.session.session_key)  # 获取django_session表中的键    print(request.session.exists('vlqc57dhhm9jiy12c70zyii6bnit6xcv'))    return render(request, 'index.html')def logout(request):    # request.session.delete()    request.session.flush()  # 删除该用户的所有数据,删除cookie    ret = redirect('/login/')    return ret

 

转载于:https://www.cnblogs.com/xiao-xue-di/p/10119307.html

你可能感兴趣的文章
文化之旅(NOIP2012普及组第四题)
查看>>
JS 输出对象的属性以及方法[转载]
查看>>
Codeforces Gym 101086 M ACPC Headquarters : AASTMT (Stairway to Heaven)
查看>>
新代理的服务器、域名、智能建站平台
查看>>
方便工作的的应用软件
查看>>
一句话了解单目相机距离估计原理
查看>>
数据库
查看>>
HDOJ 1863 畅通工程
查看>>
Ruby on Rails Session 1: How to Build a Ruby on Rails on the Ubuntu.
查看>>
获取中国时区时间
查看>>
[BZOJ 3626] [LNOI2014] LCA 【树链剖分 + 离线 + 差分询问】
查看>>
zabbix实现163邮件报警
查看>>
根据UIView获取其UIViewController
查看>>
JMeter录制脚本方式(二)
查看>>
ccnet
查看>>
Windows下使用notepad++对文本进行行列转换
查看>>
何为java中常说的封装、继承、多态
查看>>
字符串操作20160526
查看>>
设计模式之代理模式20170724
查看>>
dll引用wcf服务后,第三方调用dll时无法发现终结点的解决方法
查看>>