• cookie session


    1. Cookie
    本质上就是保存在浏览器上的键值对。为了解决HTTP请求是无状态。
    cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息。
    可以用来做登录、7天免登录、浏览习惯(每页显示多少条)

    Django操作Cookie:

    1. 设置Cookie,是在response对象
    1. 明文的
    rep = 响应对象(基础必备三件套)
    rep.set_cookie(key,value,...)

    2. 加盐的
    rep = 响应对象(基础必备三件套)
    rep.set_signed_cookie(key,value,salt='加密盐',...)

    2. 获取Cookie 是在request对象
    1. 明文的
    request.COOKIES.get("key")/request.COOKIES['key']
    2. 加盐的
    request.get_signed_cookie(key, default="默认值", salt='', max_age=None)

    2. Session

    1. 定义
    保存在服务器端的键值对,依赖于Cookie

    我们可以给每个客户端的cookie分配一个唯一的id,这样用户在访问时,通过cookie,服务器就知道来的人是“谁”。然后我们再根据不同的cookie的id,在服务器上保存一段时间的私密资料,如“账号密码”等等。

    总结而言:cookie弥补了http无状态的不足,让服务器知道来的人是“谁”;但是cookie以文本的形式保存在本地,自身安全性较差;所以我们就通过cookie识别不同的用户,对应的在session里保存私密的信息以及超过4096字节的文本。

    另外,上述所说的cookie和session其实是共通性的东西,不限于语言和框架。


    2. Django的Session操作
    1. 设置Session
    request.session['k1']
    request.session.setdefault('k1',123) # 存在则不设置

    2. 获取Session
    request.session['k1']
    request.session.get("k1", None)
    3. 删除Session
    del request.session['k1']

    注销之后删除用户所有的session数据
    request.session.delete()
    4. 将所有Session失效日期小于当前日期的数据删除
    request.session.clear_expired()

    5. request.session.set_expiry(value)
    * 如果value是个整数,session会在些秒数后失效。
    * 如果value是个datatime或timedelta,session就会在这个时间后失效。
    * 如果value是0,用户关闭浏览器session就会失效。
    * 如果value是None,session会依赖全局session失效策略。

    3. FBV和CBV
    使用装饰器的注意事项

    CBV要加装饰器需要用到method_decorator
    # 导入Django提供的一个工具,把函数装饰器变成方法装饰器
    from django.utils.decorators import method_decorator

  • 相关阅读:
    ARCGIS JAVASCRIPT API (3.2)部署
    WINFORM 只能运行一个实例问题
    iOS 版本号
    同步和异步的区别
    简单的手机号判断
    "_inflateEnd", referenced from "_inflateInit_"等。这时需要在工程中加入libz.dlib 文件
    iOS 实现打电话
    assign retain copy iOS
    iOS 长按事件 UILongPressGestureRecognizer
    UITableView 滑动删除
  • 原文地址:https://www.cnblogs.com/nick477931661/p/8747268.html
Copyright © 2020-2023  润新知