设为首页 收藏本站
查看: 755|回复: 2

Django中session和cookie的详细方法

  [复制链接]
累计签到:504 天
连续签到:1 天
发表于 2022-12-10 10:18:30 | 显示全部楼层 |阅读模式
# 使用django放置cookie
response.set_cookie(key,value)   
HttpResonse对象) renderJsonResponseredirect
response.set_signed_cookie(key,value,salt='
加密盐')
# 参数详解
key,
value='',
max_age=None, 超时时间 cookie需要延续的时间(以秒为单位)如果参数是\ None`` ,这个cookie会延续到浏览器关闭为止
expires=None, 超时时间(IE requires expires, so set it if hasn't been already.)
path='/', Cookie
生效的路径,/ 表示根路径,特殊的:根路径的cookie可以被任何url的页面访问,浏览器只会把cookie回传给带有该路径的页面,这样可以避免将cookie传给站点中的其他的应用。
domain=None, Cookie生效的域名 你可用这个参数来构造一个跨站cookie。如, domain=".example.com"所构造的cookie对下面这些站点都是可读的:www.example.com www2.example.com an.other.sub.domain.example.com 。如果该参数设置为 None cookie只能由设置它的站点读取
secure=False, 浏览器将通过HTTPS来回传cookie
httponly=False
只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)
# 删除cookie
response.delete_cookie("user")

# 获取cookie 在中间件帮我们处理好的
request.COOKIES['key']    # [request对象只要是HTTP请求过来的数据我们都要通过request来取]
request.COOKIES.get('key')


-------------------------------------------------------------------------------------------------------------------------
# 设置session
# 获取、设置、删除Session中数据
request.session['k1']
request.session.get('k1',None)
request.session
['k1'] = 123
request.session.setdefault('k1',123) #
存在则不设置
del request.session['k1']

# 所有 键、值、键值对
request.session.keys()
request.session.values()
request.session.items()
request.session.iterkeys()
request.session.itervalues()
request.session.iteritems()

# 会话sessionkey
request.session.session_key

# 将所有Session失效日期小于当前日期的数据删除
request.session.clear_expired()[别如设置一个小时过期,先用set_expire,在使用clear_expired这个方法]

# 检查会话sessionkey在数据库中是否存在
request.session.exists("session_key")

# 删除当前会话的所有Session数据(只删数据库)
request.session.delete()
  
# 删除当前的会话数据并删除会话的Cookie(数据库和cookie都删)。
request.session.flush()
   
这用于确保前面的会话数据不可以再次被用户的浏览器访问
    例如,django.contrib.auth.logout() 函数中就会调用它。

# 设置会话SessionCookie的超时时间
request.session.set_expiry(value)
    *
如果value是个整数,session会在些秒数后失效。
    * 如果value是个datatimetimedeltasession就会在这个时间后失效。
    * 如果value0,用户关闭浏览器session就会失效。
    * 如果valueNone,session会依赖全局session失效策略。

# 其他公共设置项在setting.py
SESSION_COOKIE_NAME = 自定义设置保存在cookie中的sessionkey
SESSION_COOKIE_PATH = 保存的路径
SESSION_COOKIE_DOMAIN = 保存的域名
SESSION_COOKIE_AGE = 过期时间
SESSION_EXPIRE_AT_BROWSER_CLOSE = 关闭浏览器是否让session过期
SESSION_SAVE_EVERY_REQUEST = 每次请求都保存Session,类似于长时间未操作过期重新登录
cookie和session底层刨析图.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-1003319-1-1.html 上篇帖子: 2022-12-10在战Django中forms组件源码 下篇帖子: 2022-12-11 Django在战CBV源码
累计签到:1 天
连续签到:1 天
发表于 2022-12-16 10:07:32 | 显示全部楼层
需要实操验证

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表