django中session值的数据类型是dict,需要手动save(),更新才会传递到其他页面。

这篇具有很好参考价值的文章主要介绍了django中session值的数据类型是dict,需要手动save(),更新才会传递到其他页面。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

django 项目在一个页面中删除了session中的某一个成员(del request.session["test"]["a"]),切换到另外一个页面的时候,session中的那个成员居然还在。让我一阵莫名其妙。


# 对session["test"]进行初始化赋值
def page0(request):
    request.session["test"]={"a":1, "b":2, "c":3, "d":4}
    return HttpResponse("session['test']=" + str(request.session["test"]))


# 显示session["test"]的当前值
def page1(request):
    x = str(request.session["test"]) + ' <--before ' + str(random.random())
    return HttpResponse(x)


# 删除session["test"]的其中两个成员
def page2(request):
    del request.session["test"]["b"]
    del request.session["test"]["c"]
    x = str(request.session["test"]) + ' <--after ' + str(random.random())
    return HttpResponse(x)



# 依次执行 page0 --> page1 --> page2 --> page1
# 期望最后一次执行page1的时候,显示跟page2一样,但发现最后一次page1 显示的内容跟第一次page1一样。

 后来在page2中加了一句request.session.save() 后显示才符合预期。

request.session.save()

我印象中不需要主动.save()的啊,猜想可能是因为request.session["test"]的数据类型是字典,里面成员的更新,在session中间件中没有检测到。 request.session的直接成员重新赋值,才会被检测到。验证发现果然是这样。

# 把page2的代码改为对request.session["test"]重新赋值,结果符合预期了。

def page2(request):

    test = request.session["test"]
    del test["b"]
    del test["c"]
    request.session["test"] = test
    x = str(request.session["test"]) + ' <--after ' + str(random.random())
    return HttpResponse(x)



# 依次执行 page0 --> page1 --> page2 --> page1
# 最后一次执行page1的结果,跟page2一样了。

对于这个问题,gpt3.5无法发现问题所在,gemini给出save()方案解决,gpt4给出取出来更新再重新赋值给session的解决方案。文章来源地址https://www.toymoban.com/news/detail-834234.html

到了这里,关于django中session值的数据类型是dict,需要手动save(),更新才会传递到其他页面。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python中Dict 字典类型(键值对)

    字典也是用于存储一组或者多组数据时使用 字典是 键值对 的存储方式 name : admin 键和值之间使用 冒号分隔 键必须是字符串或者数字类型,键可以是任意类型 键名不能重复,值可以重复 比如需要记录一本树相关数据 书名,作者,价格… vard = [{‘title’:’鬼谷子’,‘author’:‘鬼

    2023年04月09日
    浏览(44)
  • MobaXterm 连接服务器超过指定连接数量(默认14个)Warning: you have reached the maximum number of saved sessions for the

    错误提示: Warning: you have reached the maximum number of saved sessions for the personal edition of MobaXterm. You can start a new session but it wil not be automatically saved. Please support MobaXterm by subscribing to the Professional edition here: https://mobaxterm.mobatek.net 意思就是:警告:您已达到个人版MobaXterm的最大保存会话

    2024年02月14日
    浏览(110)
  • 使用django-admin来做erp,是否需要使用缓存数据库

    需求: 结论:仅仅使用django admin,不需要使用缓存 1:在django admin后台中禁止一次性下载超过100条带有手机号码字段的数据,从而限制转换解密时间在5秒钟内 2:非要缩短时间,让甲方加价钱 展开讨论 首先,Django Admin是Django框架的一个组成部分,用于创建网站的管理后台。它

    2024年01月25日
    浏览(59)
  • 2023 年您需要了解哪些类型的数据泄露?

    到目前为止,所有公司都应该意识到网络安全威胁是任何企业面临的主要风险之一。其中,那些直接损害敏感数据的行为可能会造成特别严重的破坏。 目前,数据泄露的典型成本已接近 450 万美元(在过去三年中增加了 15%),企业拥有正确的防御措施至关重要。这意味着业务

    2024年02月08日
    浏览(38)
  • Django操作cookie、Django操作session、Django中的Session配置、CBV添加装饰器、中间件、csrf跨站请求

    1 Django操作cookie 2 Django操作session 3 Django中的Session配置 4 CBV添加装饰器 5 中间件 6 csrf跨站请求 6.1 使用django官方提供的js文件进行csrf认证

    2024年02月13日
    浏览(48)
  • 快速上手Django(七) -Django之登录cookie和session

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 cookie Cookie原理、Set-Cookie常用字段、应用 参考URL: https://blog.csdn.net/jiangshangc

    2023年04月20日
    浏览(61)
  • django的cookie和session

    Cookie 的原理和实现: 原理: Cookie 是存储在用户浏览器中的小段数据,用于在客户端和服务器之间传递信息。当用户访问网站时,服务器可以在响应头中设置一个或多个 Cookie,然后浏览器会将这些 Cookie 存储,并在以后的请求中将它们发送回服务器。Cookie 可以包含各种数据

    2024年02月09日
    浏览(47)
  • Django实践-05Cookie和Session

    官网:https://www.djangoproject.com/ 博客:https://www.liujiangblog.com/ 本博客内容参考git :https://gitcode.net/mirrors/jackfrued/Python-100-Days 一些细节问题,大家可以查看git连接。本文主要的改变为把代码升级为django4.1版本。 Django静态文件问题备注: 参考: Django测试开发-20-settings.py中templat

    2023年04月17日
    浏览(90)
  • 【Python】对key或values是datetime类型或时间字符串的字典dict排序

    当字典的key是时间字符串类型,如下 time_dict = {‘2021-05-18’: 119, ‘2021-06-05’: 119, ‘2020-12-10’: 116, ‘2021-04-19’: 110, ‘2020-12-04’: 108, ‘2021-04-13’: 106, ‘2020-12-08’: 106, ‘2020-09-12’: 103, ‘2021-05-14’: 101, ‘2021-05-08’: 100, ‘2021-01-09’: 99, ‘2020-12-09’: 99, ‘2021-06-25’: 99, ‘

    2023年04月08日
    浏览(38)
  • Django基础入门⑬:Cookie和Session详讲和Django HTML表单实战讲解

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主,CSDN内容合伙人 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 🎁🎁: 文章末尾扫描二维码可以加入粉丝交流群,不定期免费送书。 📑📑 在 Dja

    2024年02月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包