zoukankan      html  css  js  c++  java
  • 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中设置了全局中间件

     

  • 相关阅读:
    vue+vant打包,vue+vant-ui小程序,微信支付
    vue+vant-ui移动端适配 宽高
    web前端面试题
    vue面试题及答案(1)
    vue的增删改查(简单版)
    Vue computed计算属性
    vue.cli的安装配置
    Create React App 安装时出现的错误解决方法
    运行node文件的多种方式
    怎么把node配置成全局打开
  • 原文地址:https://www.cnblogs.com/zhaoweihang/p/9229596.html
Copyright © 2011-2022 走看看