问题标签 [marshmallow-sqlalchemy]

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 投票
0 回答
51 浏览

python-3.x - 使用 sqlalchemy 和 marshmallow 求和

我正在使用 python 的框架金字塔,用于数据的 sqlalchemy 和用于序列化的棉花糖。我想向客户发送一笔价值

我有挑战和使用这个挑战的玩家,玩家的每个动作都是一个事件,每个事件都有一个持续时间。

对于每个挑战,我想为每个玩家发送总和的持续时间,并且只为一个玩家发送这个值。我尝试使用混合属性或 pre_dump 函数但我没有成功

  1. 第一种方法:具有混合属性

但我有所有用户的总和,而不是用户或一个用户的总和

  1. 第二种方法:使用 pre_dump 方法

使用这种方法,我有一个错误 TypeError: 'Challenge' object is not subscriptable'

这样做的目的是发送每个挑战的总持续时间,由用户或挑战中的每个用户实现:id_user 和总持续时间。

谢谢你的帮助

玛丽莲

0 投票
1 回答
378 浏览

sql-server - sqlalchemy.orm.exc.UnmappedInstanceError:类“builtins.dict”未映射并使用棉花糖-sqlalchemy

我不明白。我正在尝试使用以下内容在 MS SQL Server 2012 中启动一个全新的表:

注意:这是一张全新的桌子!里面根本没有数据

接下来,这是 Database.py 文件:

还要注意的是,我使用的是 SQLAlchemy 1.4.3,如果有帮助的话。

并在 main.py

现在我在这个“类'builtins.dict'未映射”上搜索了什么,大多数解决方案都将我带到了我尝试过的marshmallow-sqlalchemy包,但我仍然遇到同样的错误。所以我尝试将 Base.metadata.create_all(engine) 从 Database.py 移动到 main.py。我还尝试在 Inventory 类中实现一个init函数,并调用 Super()。初始化,这不起作用

发生什么了??为什么它会失败,是否有更好的解决方案来解决这个问题?

0 投票
1 回答
578 浏览

python - Flask Sqlalchmey - Marshmallow Nested Schema 对于带有过滤器( where )条件的连接失败

我目前正在制作一个带有 get 请求的 API,以返回模型的连接 json 数据,该模型与 flask、sqlalchemy 和 flask-sqlalchemy 以及 flask-marshmallow 有关系。当我使用 while select all 时我没有问题,选择特定数据但我在使用连接时遇到问题。谁能指导我犯了什么错误。

数据库模型

架构

数据:

SELECT orderinfo,Traydetails FROM orderinfo INNER JOIN Traydetails ON Traydetails.orderid = orderinfo.id where Traydetails.traystatus = 'Reserved';

我正在尝试实现上述 sql 语句,它提供了与我在 Postgres 中寻找的完全相同的结果。但是当我用棉花糖和 sqlalchmey 尝试相同的场景时,它无法删除过滤器,并且来自 Traydetails 的所有数据都出现在嵌套模式中,我只想在嵌套模式中实现过滤器数据

接口:

我在第一个场景中尝试了多个查询我得到了嵌套模式中的所有数据,但无法删除过滤条件

第二个场景显示空列表

输出 2:

0 投票
0 回答
73 浏览

flask - 防止棉花糖查询数据库

我想完全阻止棉花糖查询数据库。

在解释性代码片段下方

我已经使用SQLALCHEMY_ECHO = True. 现在可以从日志中看到这一点

如您所见,有两个数据库select查询,一个来自我的资源,另一个来自 Marshmallow。

当我更新我的模式实例时,就像created_data = FooSchema(only="name",)).dump(created)来自 Marshmallow 的查询一样消失了,我想要的内容如下所示。

我想知道是否有一种优雅的方法来告诉棉花糖不要查询数据库并使用实例上的可用数据进行反序列化。我正在从事大型项目,这现在是有问题的,因为 Marshmallow 可以查询许多关系的不需要的数据,从而导致请求超慢。

任何建议、文档推荐或提前将不胜感激。

0 投票
0 回答
48 浏览

flask - Flask SQLAlchemy 循环依赖

当我在从数据库中查询现有对象后尝试删除它时,出现此循环依赖错误。我无法弄清楚为什么会发生这种情况以及为什么我可以查询对象并获取所有数据但不能删除它而不会导致此依赖错误。任何帮助或提示将不胜感激。

另一方面:我是否需要 backref 中的级联和 ondelete='CASCADE'?

0 投票
0 回答
116 浏览

python - 使用烧瓶棉花糖,我如何获得一个 JSON 字符串,该字符串除了引用实例的 id 之外还会返回一个值?

该问题类似于Flask Marshmallow 关系仅转储 id如何构造一个 API 端点,外键替换为它们的值?. 但不幸的是,参考这些问题的答案对我没有多大帮助。

我是第一次练习使用 Flask_Marshmallow。我创建了两个数据库模型,“Store”和“StoreItems”。Store 表示一对多关系中的 Parent 表,其中每个 store 可以有多个 time 和多个相同 item。但是,返回的 JSON 字符串仅显示项目的关联 store_id。我想显示项目本身的名称。

模型.py

种子.py

结果:

我期待这个:

0 投票
1 回答
62 浏览

serialization - marshmallow - 如果 foreign_key 不是 int,则 include_fk 失败

在使用 sql-alchemy 和 marshmallow 序列化相关数据库实体时,我遇到了以下问题: On dumping this schema the debugger raises a ValueErrorwith the message

似乎图书馆试图将密钥转换为整数。出于可读性原因,在这种情况下,键是字符串,因此强制转换显然失败了。是否有一个标志可以避免强制转换外键?

这里的模型供参考:父类

儿童班

0 投票
0 回答
82 浏览

python - SQLAlchemySchema 加载方法忽略实例?(更新 SQLA 模型)

我正在Flask-RESTful使用Flask-SQLAlchemyand构建一个(CRUD)API Flask-Marshmallow,一切都设置好并且工作正常。但是我找不到关于更新过程的其他做法,有些做法是从获取的 JSON 数据中手动设置模型,但就我而言,我想使用Marshmallow. 因此,在阅读了这个问题之后,我想我可以尝试使用SQLAlchemySchema'load方法更新模型实例,但它似乎不起作用。

使用 HTTP 客户端,在创建记录并尝试更新之后,它根本不会更改任何内容。

也许我应该在模式类中创建一个带有@pre_load装饰器的方法来覆盖?或者我应该先转储(序列化)模型然后覆盖?

0 投票
0 回答
59 浏览

deserialization - Marshmallow 反序列化和更新嵌套在父字段中

我有一个简单的User模型和一个Permissions具有一对一关系的模型(只有几个布尔字段)。我希望能够批量更新我的权限。
输入数据如下:

我想要一种使用 schema.load 并将 user_id 传递给孩子的方法,以便在调用后schema.load(data)我可以调用db.session.commit()并完成。

这就是我目前所做的:

这不干净而且效率不高,因为我解析了几次相同的数据。

我尝试使用它,但它没有用。它在线生成错误db.session.commit()Marshmallow serialize nested with parent field

0 投票
0 回答
46 浏览

python - 您可以使用 SQLAlchemy 将表值函数映射到声明性基吗

我处于我想要访问的数据使用 SQL Server 中的表值函数的情况。

我正在构建的应用程序已经使用 SQLAlchemy ORM 和declarative_base(). 然后使用解析这些marshmallow_sqlalchemy.SQLAlchemyAutoSchema

当我尝试如下定义一个类时,我得到一个错误,表的 PK 无法映射,并且存储的列集合.c是一个空列表。

具体来说,错误是KeyError: 'PrimaryKey'
注释掉__mapper_args__结果:

理想情况下,我想要达到的目的是将特定的 tvf 函数名称传递给函数,并让该函数为我创建类,如下所示:

我可以使用 查询 TVF 精细engine.execute(),并在这样做时列标题按预期在行对象上拉出。

我的问题是,如何将 TVF 映射到 SQLAlchemy 类