修复类以在 Flask 会话中启用对象存储[重复]

2024-05-24

我有一个自定义类 Passport,其中包含活动用户身份和权限。我曾经将它存储在会话中,如下所示:

p = Passport()
p.do_something_fancy()
session["passport"] = p

它就奏效了。现在,服务器升级后,我收到此错误:

TypeError: <userman.Passport instance at 0x7f06e9356f38> is not JSON serializable

我猜想它与 Flask 中的一些升级有关,这些升级现在要求对象可以 JSON 序列化才能存储在会话中。但是如何正确地使对象可 JSON 序列化呢?也许我必须提供一种序列化方法和反序列化方法,以便在再次加载对象时恢复对象状态?


你必须创建一个自定义的JSONEncoderclass 并告诉 Flask 使用它进行 JSON 序列化/反序列化。

以下是它的大致工作原理:

from flask.json import JSONEncoder

class CustomJSONEncoder(JSONEncoder):
    def default(self, obj):
        if isinstance(obj, Passport):
            # Implement code to convert Passport object to a dict
            return passport_dict
        else:
            JSONEncoder.default(self, obj)

# Now tell Flask to use the custom class
app.json_encoder = CustomJSONEncoder
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修复类以在 Flask 会话中启用对象存储[重复] 的相关文章

随机推荐

  • java替代Thread.stop()来中断特定调用

    我正在寻找一种方法来告诉这个调用 大约需要 20 120 秒 final Area image final AffineTransform transform new AffineTransform transform scale imag
  • JavaScript Array.length 属性是函数还是简单变量?

    我有以下 JavaScript 代码 我已经使用 new 关键字初始化了一个数组 因此创建了该数组对象的一个 新实例 然后 我通过向数组添加元素来填充该数组 然而我认为我犯了一个根本性的误解 代码的下一部分让我非常困惑 如果它不够清楚或者完
  • Google 使用 Angular JS 放置自动完成功能

    我试图让谷歌地点自动完成与 Angular JS 一起工作 这是jsfiddle http jsfiddle net punchouty cTD2a 2 place change 事件后模型未更新 它正在根据输入的变化进行更新 下面是 ht
  • Git:repo 包含一个空目录 - 会发生什么?

    Git 跟踪文件 而不是目录 https stackoverflow com questions 5091017 和我们目前不能add空目录 https stackoverflow com questions 11600188 The 标准
  • 如何使用 boto3 从 AWS Cognito 获取经过身份验证的身份响应

    我想使用 boto3 获取访问 AWS 服务的临时凭证 用例是这样的 我的 Cognito 用户池中的用户登录到我的服务器 我希望服务器代码为该用户提供访问其他 AWS 服务的临时凭证 我有一个存储我的用户的 Cognito 用户池 我有一
  • 按下按钮时清除编辑文本焦点并隐藏键盘

    我正在制作一个带有编辑文本和按钮的应用程序 当我在 edittext 中输入内容然后单击按钮时 我希望键盘和焦点在 edittext 上消失 但我似乎无法做到这一点 我在 XML 中插入了这两行代码 android focusable tr
  • Spring Data:限制自定义查询的结果

    在我的 Spring 数据存储库中 我 必须 使用自定义查询 Query注解 我知道我可以限制这样的命名查询中的结果数量 Iterable
  • iOS 应用程序中的屏幕共享? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想与运行相同应用程序的其他设备共享
  • Python pandas:删除字符串中分隔符之后的所有内容

    我有数据框 其中包含例如 vendor a ProductA vendor b ProductA vendor a Productb 我需要删除所有内容 包括 两个 以便我最终得到 vendor a vendor b vendor a 我尝
  • Rails - 如何重写设计 SessionsController 以在用户登录时执行特定任务?

    使用 Devise 管理用户会话 注册 每次用户登录时 以及在他被 devise 重定向到连接的主页之前 我需要执行特定任务 例如 更新该特定用户的用户表中的某些字段 用户 我是否必须重写 devise SessionsController
  • 如何将列表转换为地图?

    最近我和一位同事讨论了转换的最佳方式是什么List to Map在 Java 中 这样做是否有任何具体的好处 我想知道最佳的转换方法 如果有人可以指导我 我将非常感激 这是个好方法吗 List
  • PowerShell 中的 SVN 输出编码

    我正在尝试在 PowerShell 脚本内的字符串中捕获 SVN 日志 在命令行上 输出的编码是正确的 但是当我将其捕获到字符串中时 它就不是正确的 PS C sandbox gt svn log r1804 https myserver
  • youtube 将视频嵌入为带有边框半径的 iframe

    我遇到了一个我完全不明白的问题 我有一个带有 YouTube 视频 iframe 的网站 想通过 CSS 来圆化边框 在http www wunschpreisdeal de empfehlung winterreifen profilti
  • ASP.Net Core 的自定义不记名令牌授权

    这是自定义不记名令牌授权机制的可接受的实现吗 授权属性 public class AuthorizeAttribute TypeFilterAttribute public AuthorizeAttribute base typeof Au
  • 使用 Unity3D 按钮执行 xcode 函数?

    是否可以在 unity 中制作一个按钮来执行 Xcode 中的功能 我正在尝试执行来自 unity3d 项目的推送消息 请帮忙 因为这让我发疯 提前致谢 是的 您可以调用具有 C 接口的本机 Objective C 代码 您甚至可以在 Un
  • 如何将枚举类传递给 QML?

    我正在学习QML with Qt并在通过时遇到一些麻烦enum class to qml 当我使用信号时int参数 一切正常 代码运行完美 But 麻烦就在这里 如果我使用信号与一些enum class我有参数undefinedqml 信号
  • 在一个单元格中显示两个日期

    我正在尝试在 Excel 的一个单元格中显示两个日期 我使用了以下公式 DATE YEAR NOW MONTH NOW I1 DATE YEAR NOW MONTH NOW I15 其中I1和I15的值分别为1和15 我选择这个公式的原因是
  • 使用 SOAP 调用 WCF 服务

    我正在尝试在不创建 WCF 客户端的情况下测试 WCF 服务 我有类似的代码 问题here https stackoverflow com a 1643025 1397017 我希望完全控制 SOAP 负载 因此我希望能够发出我自己的 We
  • 使用放置新运算符时我真的需要担心对齐吗?

    我读了这个我什么时候应该担心对齐问题 https stackoverflow com questions 6474316 when should i worry about alignment但我仍然不知道是否需要担心放置新运算符返回的未对
  • 修复类以在 Flask 会话中启用对象存储[重复]

    这个问题在这里已经有答案了 我有一个自定义类 Passport 其中包含活动用户身份和权限 我曾经将它存储在会话中 如下所示 p Passport p do something fancy session passport p 它就奏效了