问题标签 [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.
python - 电子邮件的棉花糖自定义验证消息
我使用以下模式来验证数据:
但是 ValidationError.messages.items 有以下消息:
如何让它显示我的自定义消息?error_messages 字典是否有完整的可能值列表,因为我怀疑我也需要覆盖其他消息。
sqlalchemy - 与 Marshmallow 的关系非常慢的序列化
我的数据库中有以下示例表,我用 Flask_SQLAlchemy 管理它。
我的 Flask 架构如下所示:
以下是我对员工 GET 的路由:
如果我现在运行它,使用 SQL-Alhchemy 的查询大约需要 0.01 秒,这对我来说没问题,但使用 Flask_Marshmallow 的序列化大约需要 1.3 秒。
如果我将架构更改如下:include_relationships = False
并手动运行序列化:
用棉花糖序列化大约需要 0.02 秒,手动添加的就业关系大约需要 1.2 秒。
在我的真实案例中,我的关系远不止一个关系,数据的序列化需要惊人的 32 秒。
有没有办法用棉花糖加速序列化?难道我做错了什么?
谢谢您的支持。
python - 如何使用 webargs 从查询参数中按值解析枚举?
我有下一个枚举:
和架构:
在 Flask 之后,我声明了 GET 方法webargs
:
它失败并出现错误:
我在调试器中检查了它,发现EnumField
调用EStatus(value)
. 问题是我的值是str
类型,因为它来自查询参数。
如何在调用之前EnumField
将其转换为?int
EStatus(value)
python - 如何将 marshmallow_jsonapi.flask 模式字段反序列化为 SQLAlchemySchema PostgreSQL JSONB 字段?
我有一个 Flask 模型,其字段名为PostgreSQLmetadata
中的JSONB
类型。
我将其序列化为marshmallow_jsonapi.flask
模式(ma
是我环境的 Marshmallow 对象):
然后我尝试使用flask_rest_json_api
API 来反序列化请求:
当我发布请求时,foo
据我所知,传入的 JSON 被正确反序列化为对象,但该.add()
方法失败。
看起来 ORMdict
无法映射到正确的 PostgreSQL 数据类型。
除了序列化 JSONB 字段ma.SQLAlchemySchema
之外,实例是否应该使用其他方法?fields.Raw()
我应该Foo
在调用后处理实例schema.load()
吗?任何帮助表示赞赏。
python - 数据库模型的 Flask Marshmallow Schema Introspection 是如何工作的?
我试图了解 Marshmallow Schemas 的内省是如何工作的。这是一个简单的代码示例:
当我运行这个脚本时,我得到的结果是[{}, {}]
. 这告诉我它确实Person
从数据库中检索了对象,但是Schema
没有字段,所以它只返回空字典。我希望这个脚本返回[{"id": 0, "name": "Alice", "age": 25}, {"id": 1, "name": "Bob", "age": 26}]
,或类似的东西。显然,数据库模型的自省并没有发生。为什么不?我应该如何修改这个脚本以获得预期的结果?
为了完整起见,我使用的是 Python 3.8.5,pip freeze
在我的环境中 a 的结果是这样的:
注意:我知道我可以通过MySchema
像这样修改我的类来让它工作:
但这违背了完全自动内省的目的。我想避免在两个地方定义字段。
python-3.x - 在序列化之前更改信息
我有一个数据库模型,例如:-
和一个像这样的序列化器:-
我的问题是,当我在查询后转储数据时:-
我以以下形式获取数据
但我希望能够只提取脚本的名称并将其序列化
我不想在 Script Model 中为 name 创建另一列,我该如何解决这个问题?
python-3.x - 使用棉花糖缩放嵌套字段
我有两个这样的数据库模型
当我使用以下模式序列化模型SettingsContainer
我得到的是
但我想以以下格式获取数据
我希望能够提取嵌套字段,我不明白如何使用该ma.Function
方法,提前非常感谢大家。
python-3.x - Python Marshmallow AttributeError:“list”对象没有属性“get”
我有这个架构
from marshmallow import validate, ValidationError from marshmallow_jsonapi import fields from marshmallow_jsonapi.flask import Relationship, Schema
我想加载这些数据(来自 UI)进行验证:
为了验证我做了:
我收到一条错误消息,
AttributeError:“列表”对象没有属性“获取”
这很明显,因为我正在传递一个列表。当我从上面的列表中传递一个字典时,验证工作正常,但我想传递批量数据并立即进行验证,如 Marshmallow 文档所示:https://marshmallow.readthedocs.io/en/stable/quickstart。 html#验证
什么时候
许多=真
, load 方法需要一个集合类型,如 list、tuple、queryset 等。
关于如何验证 Marshmallow 中的数据列表的任何建议?棉花糖版本是:
谢谢!
python - 棉花糖:为什么我不能访问字段属性?
我有一个非常常规的模式类,例如:
我想分析类本身,以便能够为前端形成一些元信息。但我无法访问 xxx 或名称,例如:
python - 如何在 Python 中从 field.Method 访问不同的参数
我想将我的邮政编码更改为 ''
如果它None
但无法正确访问 country_code 参数来执行此操作。我究竟做错了什么?