问题标签 [flask-marshmallow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
52 浏览

marshmallow - 带有嵌套字段的棉花糖随机错误

我使用 Marshmallow 嵌套类型得到以下异常,抛出异常的概率为 50/50%,所以不是每次启动程序时。

其中global_search.py定义了以下模式:

GlobalSearchResultSchema嵌套之前定义的类型也是如此。由于我经历了这种不可预测的情况,我在想这是一种竞争条件吗?

有任何想法吗?

编辑(额外信息)

只是为了让一切变得更加诡异,我将以下几行内联调试代码添加到了抛出最终异常的 marshmallow fields.py 模块中 - 在 schema() 属性函数中(大约第 570 行):

当执行顺利时,这会产生以下输出:

当执行失败时:

注意最后一个与 SchemaABC 的比较。Python 似乎看不到这些类是相同的,即使它们来自完全相同的模块文件。

更多线索

如果我运行 gunicorn 时只有一名工作人员探测文件打开,strace我会发现当它失败时有一个有趣的 python 行为。它加载了 field_converter 的字节编译和普通 python 版本:

当它加载良好时它不会:

0 投票
0 回答
66 浏览

python-3.x - 如何在棉花糖 python 中为不同的模式设置 Anyof 和 OneOf

0 投票
0 回答
57 浏览

python - Flask sqlalchemy Marshmallow 反序列化多对多“dict”对象没有属性“_sa_instance_state”

我正在尝试使用棉花糖的 .load() 方法来反序列化 POST 请求上的 json 对象。但是我一直遇到这个错误'dict' object has no attribute '_sa_instance_state'用户和角色有多对多的关系。模式上的 .dump() 工作正常,但 .load() 可以保存除多个角色之外的所有其他字段。我试图在我的 json 正文中传递它。

我的用户和角色模型

我的架构

发布请求

0 投票
0 回答
37 浏览

python - 如何用棉花糖序列化菱形圆形图?

我正在使用棉花糖,并且序列化树没有任何问题。但是如何序列化/反序列化对象的菱形图呢?

这是我正在谈论的结构的简单示例:

如您所见,上图不是树,因为 StudentGroupAssignment 与 Student 以及 StudentGroup 都有关系。

哪个是序列化/反序列化的最佳方法?最终的 json 会是什么样子?

0 投票
1 回答
39 浏览

flask - 如何使模型烧瓶棉花糖_sqlalchemy反序列化相关对象

我有这个代码:

当我运行它打印的代码时:

我想更改代码以使其打印:

我该怎么做?

我想控制反序列化相关对象。

我也对元数据中的一些其他设置感到好奇,例如 load_only 和 dump_only 和 excelude 等。

0 投票
0 回答
29 浏览

python - 如何使用 SQLAlchemy、Flask 从不同的表中返回列?

我正在尝试使用 SQLAlchemy、Marshmallow 和 FLask 从我的 Submission_status、Policy 类中查询表。我正在尝试创建一个路由调用 summary.py 以使用 GET 请求为我的前端获取类似这样的内容:

我想从下表中获取这些数据:

我的模型和模式如下所示:

不要介意错误的缩进,它在项目中缩进并且适用于其他功能。

这是我在summary.py中的代码:

谁可以帮我这个事?当我运行服务器和在网络上时,我总是得到空括号......

0 投票
0 回答
28 浏览

flask - TypeError:execute_values() 得到了一个意外的关键字参数 'fetch'

我在使用 Flask、Flask-sqlalchemy 和 flask-marshmallow 创建多对多 postgresql 数据库表的条目时遇到问题。以下是我的模型设置。

以下是各个表:角色和权限

现在,当我尝试使用这个棉花糖模式和下面的视图向一个角色添加一组权限时(例如,我已经有一个管理员角色)

对于反序列化的架构,我想传入一个现有权限 ID 列表以立即附加到一个角色。

这是我在传递此数据时遇到的 422 Unprocessable entity 错误。

我用谷歌搜索无济于事。可以和 psycopg2 一起使用吗?

将不胜感激任何帮助。

0 投票
1 回答
39 浏览

flask - 如何更改 SQLAlchemyAutoSchema 实例的类属性

我有一个 flask_sqlalchemy 模型,我想使用 SQLAlchemyAutoSchema 序列化它的实例和它的实例列表:

为此,我创建了上述类的两个实例,如下所示:

那么什么是serialized_test?这是我想要的,它看起来像这样:

什么是serialized_tests?它看起来像这样:

但我不需要评论。我只需要:

我怎样才能拥有这个而不必重新定义另一个 TestSchema,例如 TestListSchema?

如果我能做这样的事情,那将非常有帮助:

我实际上想要做的是从实例中删除类属性。

如何做到这一点的任何解决方案?

或者如果我可以有条件地向类添加属性

任何解决方案?

0 投票
0 回答
20 浏览

python - 多线程:Flask + SQLAlchemy + Marshmallow

我一直在使用 Flask、SQLAlchemy 和 Marshmallow 使用 Python 开发基于 REST 的 Web 应用程序,并连接到 Postgres 数据库。与烧瓶应用程序并行,我运行多个工作线程来实时分析数据。这些线程应该可以访问烧瓶使用的相同对象。为了访问数据库中的数据,我为每个表提供了一个服务。其中一项服务是 TokenPriceService,它从数据库读取和写入代币价格。

我的 TokenPriceModel 看起来像这样:

这是问题所在:

一个线程定期(每 10 秒)更新代币价格。这行得通,我可以在数据库中看到更新的数据。但是当我尝试使用来自另一个线程的相同 TokenPriceService 访问相同的数据(它会做买卖决定)时,价格永远不会更新,并且始终保持与我启动应用程序时相同的值。(所以它只在程序启动时更新一次)。

所以我的问题是:

  • Marshmallow 线程安全吗?
  • 有没有更好的方法来解决我的问题?
0 投票
1 回答
35 浏览

flask - flask-marshmallow-sqlalchemy - “NoneType”对象没有属性“__mapper__”

我基本上是在尝试使用烧瓶、flask-restx、marshmallow 和 sqlalchemy 创建一个 API 来检索用户舰队的信息以及创建/添加新船只。

一个用户可以有多个船只,一个船只可以有多个行程,并且船只和行程的组合具有特定的燃料消耗。

虽然发送 GET 请求似乎会返回所有指定的消息,但发送 POST 请求会返回上述错误:

- -错误 - -

在此处输入图像描述

相关代码:

- -模型 - - -

一个容器模型,包括新容器的所有可能字段和一些用于查询和保存到数据库的辅助函数。

---架构---

---资源---

---app.py----

----文件树----

在此处输入图像描述