问题标签 [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 回答
13181 浏览

python - 用列表数据理解棉花糖嵌套模式

我是 python 新手,我正在使用marshmallow序列化。无法使用嵌套的 scehma。,我的代码

图式

和我的烧瓶应用

我的代码有什么问题吗?并且面临嵌套模式的问题并且无法在输出中获取嵌套数据。

下面的输出

[ {“地址”:“qqq”,“公司ID”:1,“位置”:“www”,“名称”:“eee”},{“地址”:“www”,“公司ID”:2,“位置": "qqq", "姓名": "aaa" } ]

0 投票
1 回答
1366 浏览

python - Marshmallow:如何覆盖这个 python 类的构造函数?

下面是我在基于 SQLAlchemy 的应用程序中使用的 python棉花糖序列化程序。

这是我如何称呼这个序列化程序:

现在,我想更改序列化程序,使其接受一个附加参数(我将传入my_argument),如果该参数的值为 1,则返回"Goodbye"代替"Hello". 我怎样才能做到这一点?

特别是,我不知道如何将参数传递给这个 marshamallow Schema,以便它可以从 inside 中获得get_field3。我知道我需要重写该__init__()方法。但我不确定它应该是什么样子。我尝试了以下方法,但没有奏效:

这是我得到的堆栈跟踪:

0 投票
1 回答
1958 浏览

python - Marshmallow 嵌套 post_load 对象创建

我正在开发一个处理嵌套数据结构的 API。当尝试使用棉花糖时,我无法想出一个解决方案来创建嵌套模型实例并引用它们的父实例。Marshmallow 的 post_load 以该顺序从子到父运行,而不是从父到子。有没有办法扭转这种情况?我想从序列化父级开始并将其作为上下文传递给子级。

0 投票
1 回答
102 浏览

python - 来自层次结构的 Flask SQLAlchemy 查询

我将 Flask 和 SQLAlchemy 与棉花糖一起使用,并试图解决一些问题。如果我有几个在层次结构中使用外键工作的模型(表),我如何正确查询最远的孩子的结果?

例如:

我在 Marshmallow 中为每个都有 Schemas。我在这里寻找的是如何检索特定学校学生的所有学生信息(使用 SQLAlchemy)。稍后我会将这些序列化为 JSON。

0 投票
1 回答
1833 浏览

python - 使用 DB 数据模型生成 SQLAlchemy 模型、模式和 JSON 响应

将 Flask 和 SQLAlchemy 用于 Python webapp,我的目标是创建一个系统,我可以在其中:

  1. 从现有的 PostgreSQL 数据库中导入数据模型,并将它们映射到相应的 SQLAlchemy 模型中的字段
  2. 使用这些 SQLAlchemy 模型自动生成模式。然后,此架构将用于对用户提交的数据执行数据验证。(我目前正在尝试使用 Marshmallow,但我愿意接受其他建议)。
  3. 使用步骤 2 中生成的模式执行 JSON 响应格式化。(我目前正在尝试根据 JsonAPI 的模式格式化我的响应 - 如果需要,这可能会改变,但我更喜欢它)。

所有这些都将打包在一个单一的层中,该层应该允许在编写 API 时进行简单的数据访问、验证和响应格式设置,希望无需手动定义数据模型或模式,而无需手动定义数据库中已经存在的定义。这引出了我的问题:

我可以利用现有框架来完成我想要完成的所有事情吗?我不希望有一个可以做所有事情的库,但我希望能够利用几个现有的框架。但是,我遇到了直接冲突,特别是在第 2 步和第 3 步中。到目前为止,我一直在尝试使用的堆栈如下:

  • Flask(我的网络框架)
  • SQLAlchemy(用于通过反射访问我的数据,见下文)
  • Flask-Marshmallow(生成数据验证模式)
  • Marshmallow-JsonAPI(根据 JsonAPI 规范格式化 JSON 响应)

我有第 1 步的解决方案:SQLAlchemy 的反射。这允许我读取现有数据库中的表并将它们映射到 SQLAlchemy 模型。这很好用。

第 2 步和第 3 步的组合是它变得模糊的地方 - 我正在尝试使用 Flask-Marshmallow 和 Marshmallow-JsonAPI。Flask-Marshmallow 有ModelSchema 类,它允许您通过将现有的 SQLAlchemy 模型传递给它来生成模式。我可以将我在步骤 1 中生成的 SQLAlchemy 模型传递给它,满足我在步骤 2 中的标准。至于 Marshmallow-JsonAPI,它具有可以为模型定义模式的功能,它会自动创建符合 JSONAPI 的响应,满足我对第 3 步的标准。我可以单独让这些框架中的每一个来完成我需要的工作。

不幸的是,由于我的模式必须从 Flask-Marshmallow 和 Marshmallow-JSONAPI 中的 Schema 类继承,我遇到了问题。我的“虚拟”类模型如下所示:

在尝试启动我的 API 时,我收到如下奇怪的错误:

似乎由于我的 Schema 类继承自两个不同的超类,因此会导致问题。我希望这两个棉花糖库非常兼容,但这似乎确实存在问题

所有这一切的结果是我不太确定下一步该尝试什么。我真的不期待 Marshmallow 框架有任何具体的建议,只是想展示我的思路。围绕这种设计是否有任何最佳实践,或者我是否试图一次解决太多问题?

(对于 Python 和 SO 来说都是新的——如果有任何不清楚的地方,我们深表歉意)。

0 投票
3 回答
4336 浏览

python - SQLAlchemy 连接 2 个表

我想创建 python SQLAlchemy,这是我数据库上的 2 个表,

包含记录

表:master_edu_level

记录 :

如何显示记录:

如果我这样解释 SQL:

我已经写了代码:

如何在 python SQLAlchemy 上创建连接表 ORM?

谢谢

0 投票
1 回答
3922 浏览

python - 使用 Flask-SQLAlchemy 和 Flask-Marshmallow 聚合连接查询

我正在使用 Flask-SQLAlchemy 和 Flask-Marshmallow 针对 SQL Server 实例提取数据。我试图复制的查询看起来像这样

我很难把它翻译成 SQLAlchemy,特别是 Flask-SQLAlchemy,它似乎有一种稍微不同的做事方式。

这是我的尝试,位于我的路由函数中。这个查询执行了,但是针对服务器运行的 SQL 只是三个表的连接——它不进行聚合或分组。我认为,它还选择了每一列,而不仅仅是我在with_entities.

我的问题是

  1. 如何修复查询,使其行为类似于上面的 SQL 查询?
  2. 这大致是“正确”的做事方式吗?我是 SQLAlchemy 和 Flask 的新手,所以我不确定正常的做事方式。例如,为每一列赋予标签,然后按这些字符串进行分组似乎有点不对劲——我本来希望能够按我的模型类上的列属性进行分组。在尝试过滤连接表时也调用join似乎是多余的——连接不是已经在db.relationship属性中编码了吗?

我的模型和架​​构如下。

0 投票
1 回答
11746 浏览

python - Flask Marshmallow/SqlAlchemy:序列化多对多关系

我正在使用 Flask、flask-sqlalchemy 和 flask-marshmallow 构建一个小型 REST api。对于某些请求,我想返回一个包含我的 sqlalchemy 对象的 json 序列化响应。但是,当使用多对多关系/辅助表时,我无法让序列化与急切加载的 sqlalchemy 对象一起使用。

这是一个简单的例子,或多或少从flask-marshmallow docs复制/粘贴:

基于上面的代码,我可以急切地加载书籍并获取作者对象。但是在序列化深层对象时,会被序列化为一个 ID 列表:

这是我想要的结果:

我怎么做?

0 投票
1 回答
338 浏览

postgresql - 我如何从 api 响应中更新对象的值

我对 Python 世界完全陌生,但我正在努力学习这种美丽的语言。但我需要你的帮助。

我有一个 API,当用户想要更改有关其产品的任何数据的值时,我想要它,并使用新值进行更新。

例如:

我有以下产品:

  • 标题 = DC 滑雪板靴
  • 描述 = 大家好,我正在出售这款滑雪板靴,都是全新的,售价 130 英镑
  • 价格 = 130 英镑

然后用户提出更改例如产品价格的请求。

并且完全迷失在如何做到这一点。

我对更新产品的看法:

0 投票
1 回答
1969 浏览

python - 如何从 Python 中的变量定义类属性?

我需要从嵌套类访问变量。目标是使用 Marshmallow 库创建一个模式。代码如下所示:

如果我设法将我的变量作为外部类(ParserScheme)的类属性传递,那么很容易将它放入内部类(Meta)。

但是我似乎找不到动态设置类属性的方法。如果我设置一个“经典”属性(我的意思是类实例的属性,而不是类本身的属性),那么我无法从内部类访问它。

我也想过使用全局变量,但这并不能真正让我满意。还有另一种方法吗?

我对 OOP 比较陌生,我不确定我是否真的理解类属性的概念。我担心有一种简单的方法可以做到这一点,但我没有看到它,因为我专注于我认为这应该工作的方式......