问题标签 [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.
flask - flask-marshmallow sqlalchemy 无法转储对象
我有一个非常简单的 Flask、Flask-Restful、Flask-SqlAlchemy 和 Flask-Marshmallow 实现:
我在尝试转储刚刚创建的对象时收到验证错误:{'_schema': ['Invalid input type.']}。
初始化.py
模型.py
模式.py
视图.py
get 方法工作得很好。该帖子会将新模型添加到数据库中,但随后无法使用模式序列化模型。它也无法将我的 reqparse 参数加载到模式中。为什么它能够添加到 RDS,从 RDS 读取,却不能序列化对象?
我尝试了一堆不同的列类型,尝试了各种架构设置,但似乎没有任何效果。此外,我已经验证了 get 中模型属性的确切类型与我正在创建并尝试转储的模型的属性相匹配......所以我真的不确定它可能是什么。
python - 在 sqlalchemy 中映射对象 ID
我有一个现有的数据库架构,它使用整数作为主键,并且需要向每个表添加第二个 UUID 列。这个 UUID 是服务的消费者在引用记录时将使用的,现有的整数 ID 将保持私有并且仅在内部使用。下面是一个简化的例子。事务表具有 TransactionID 和 TransactionUUID 列,并且还具有指向 Category 表的外键 CategoryID。同样,Category 表具有 CategoryID 和 CategoryUUID 列。
我想要实现的是允许对事务资源的发布请求以允许创建新事务,并以某种方式将 TransactionSchema 类中的 category_uuid 字段链接到相应的 category_id。我面临的挑战是在序列化和反序列化对象时如何将 UUID 与其对应的整数 ID 相关联。例如,当一个新事务被创建并且消费者通过这样的有效负载发布时:
JSON 对象反序列化如下:
Transaction 类没有 category_uuid 属性,需要以某种方式将此值转换为相应的整数 ID。同样,当像这样序列化事务时:
category_id 属性需要翻译成对应的 category_uuid 值。
sqlalchemy 中是否有一种优雅的方式来实现这种 ID 映射?
python - 如何使用 Flask + Swagger UI 输入字符串数组?
我有一个烧瓶 api,它可以自动验证并生成 Swagger 文档,这要归功于marshmallow package。API 方法之一是 POST 请求,它需要一个特定id
的字符串和一个字符串list_of_ids
数组。GUI 如下所示:
所以我的问题是你如何输入这样的列表(或数组)或字符串?它有等效的卷曲吗?
python - 使用烧瓶棉花糖,我如何获得一个 JSON 字符串,该字符串除了引用实例的 id 之外还会返回一个值?
该问题类似于Flask Marshmallow 关系仅转储 id和如何构造一个 API 端点,外键替换为它们的值?. 但不幸的是,参考这些问题的答案对我没有多大帮助。
我是第一次练习使用 Flask_Marshmallow。我创建了两个数据库模型,“Store”和“StoreItems”。Store 表示一对多关系中的 Parent 表,其中每个 store 可以有多个 time 和多个相同 item。但是,返回的 JSON 字符串仅显示项目的关联 store_id。我想显示项目本身的名称。
模型.py
种子.py
结果:
我期待这个:
python - 使用数据库中不存在的字段嵌套在 Python 和 Marshmallow 中
我在棉花糖中有这些模式:
“father”和“mother”与“user_id”和“name”在同一个表中,但“parents”只是JSON的一个属性:
我用“嵌套”类尝试过,但它不起作用。那么当模型中不存在“parents”属性时如何进行嵌套呢?
serialization - marshmallow - 如果 foreign_key 不是 int,则 include_fk 失败
在使用 sql-alchemy 和 marshmallow 序列化相关数据库实体时,我遇到了以下问题: On dumping this schema the debugger raises a ValueError
with the message
似乎图书馆试图将密钥转换为整数。出于可读性原因,在这种情况下,键是字符串,因此强制转换显然失败了。是否有一个标志可以避免强制转换外键?
这里的模型供参考:父类
儿童班
python - 如何在validation_schema中动态设置skip_on_field_errors?
我需要动态禁用模式中一个字段的验证,我该怎么做?
我尝试了这样的解决方案,但我需要该字段是用户可输入的:
flask - 烧瓶棉花糖不加载关系数据
我正在为烧瓶和反应应用程序使用Brian Cappello入门套件。我正在尝试在两个模型之间创建关系,并希望加载相关数据作为对前端的响应。
下面是两个类模型
下面是我的 UserChatRoom 类序列化程序
这种关系基本上是用户拥有一个给定列表的聊天室。当我查询 UserChatRoom 表时,我需要以下响应。
但我得到这个输出
使用的查询:
当我使用 .first() 时,我可以通过 usr_list.sender 加载发件人详细信息,但对于 .all() 它没有填充
python - 转储模型对象时,Flask marshmallow 无限递归
所以我使用 Flask-Marshmallows 转储数据库模型并将它们转换为 Python 对象以适应我的 Web API。
但是,由于某种原因,程序总是会引发以下错误:
我没有看到任何可能无限递归的领域......有什么想法吗?谢谢!
我的模式文件:
还有我的模型:
谢谢!!
python - SQLAlchemySchema 加载方法忽略实例?(更新 SQLA 模型)
我正在Flask-RESTful
使用Flask-SQLAlchemy
and构建一个(CRUD)API Flask-Marshmallow
,一切都设置好并且工作正常。但是我找不到关于更新过程的其他做法,有些做法是从获取的 JSON 数据中手动设置模型,但就我而言,我想使用Marshmallow
. 因此,在阅读了这个问题之后,我想我可以尝试使用SQLAlchemySchema
'load
方法更新模型实例,但它似乎不起作用。
使用 HTTP 客户端,在创建记录并尝试更新之后,它根本不会更改任何内容。
也许我应该在模式类中创建一个带有@pre_load
装饰器的方法来覆盖?或者我应该先转储(序列化)模型然后覆盖?