• django Cookie,Session和自定义分页


    因为HTTP协议是无状态的,每发送完请求后都会断开链接,所以有时为了保存

    状态用到cookie和session

    cookie 是保存在浏览器上的,session是保存在后台的

    cookie相当于一个口令,从服务端发给客户端的一系列字符串,每次发送请求都带着这个口令

    session就是一个大字典,用户发送过来cookie,要和session进行比对,成功则保持状态,cookie存储有限,session还存一些其他私密信息

    获取session:

    request.session['k1']

    request.session.get('k1',None)

    设置session

    request.session['k1']=123

    request.session.setdefault['k1',123]  #存在就不设置

    查询session:

    request.session.keys()

    request.session.values()

    request.session.items()

    request.sessioon.iterkeys()

    request.session.itervalues()

    request.session.iteritems()

    会将所有Session失效日期小于当前日期的数据删除

    request.session.clear_expired()

    检查是否存在session的key

    request.session.exists('k1')

    删除当前会话的所有session数据,客户端的cookie不会删

    request.session.delete()

    删除当前会话的所有session数据和客户端的cookie

    request.session.flush()

    设置会话session和cookie的超时时间

    request.session.set_expiry(value)

    如果value是整数,则在多少秒之后消失

    如果value是datatime或者timedelta,session就会在这个时间消失

    如果是0,用户关闭浏览器就失效,

    如果不设置,或者None,session默认是2周失效

    在类中给类方法加函数装饰器,不能直接加,Django内置了一个方法

    from django.utils.decorators import method_decorator

    然后method_decorator(check_login)

    这是直接加在类里get 和post方法之上的

    当直接加在类的上面时必须要加上name关键字,method_decorator(check_login,name='get')

    补充:CSRF Token相关装饰器在CBV只能加在dispatch方法上

    csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings中没有设置全局中间件。

    csrf_exempt,取消当前函数防跨站请求伪造功能,即便settings中设置了全局中间件

     

  • 相关阅读:
    python 读csv文件时,在csv类型上执行类型转换
    python 读csv文件对列名进行合法性验证
    python 读csv数据 通过改变分隔符去掉引号
    python 写csv文件
    python 简单了解namedtuple
    python 读csv格式的文件
    python 序列化,反序列化
    PyQt5 笔记(05):信号/槽
    PyQt5 笔记(04):主窗口卡死问题
    PyQt5 笔记(03):弹出窗口大全
  • 原文地址:https://www.cnblogs.com/zhaoweihang/p/9229596.html
Copyright © 2020-2023  润新知