问题标签 [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 - 使用 Flask 的 url_for 在 URL 中生成列表
我正在使用 webargs 从request.args
Marshmallow 中解析参数并将它们作为参数传递给 Flask 视图。我的客户使用逗号分隔的列表来表示一个键的多个值:
为了解析这个,我使用 Marshmallow 的DelimitedList
字段。
但是,如果我使用 Flask's 生成 URL url_for
,它会为每个值生成重复的键:
用DelimitedList
字段解析它只会捕获第一个值。更改为List
正确的字段会再次捕获值。所以要么我的 Flask URL 失败,要么我的客户端 URL 失败。
我无法更改客户端生成 URL 的方式,所以我想坚持使用DelimitedField
. 我怎样才能url_for
生成相同的样式?
python - Marshmallow 允许为一个值保留 none,但不清除该值
我想温和地强制用户群中的用户设置一个以前不需要但现在需要的值。
这是设置
从数据库中获取的用户会根据数据库绑定的棉花糖模式进行验证,这允许 None 值。
新用户根据不允许 None 的棉花糖模式进行验证。
已编辑的用户将根据另一个棉花糖模式进行验证,这是棘手的部分。
我希望不设置该字段也可以,如果以前未设置,但一旦设置,您应该无法将其删除。
这是如何在棉花糖中指定的?
python - 用 Peewee 和 Marshmallow 序列化多对多关系
我有一个带有多对多用户的 PostgreSQL 数据库,以标记与下表的关系:
- social_user:用户信息
- 标签:标签信息
- user_tag:social_user和标签之间的多对多关系
我正在尝试使用 Flask、Peewee 和 Marshmallow 构建一个简单的 API 来访问该数据库中的数据。我们现在可以忽略 Flask,但我正在尝试为social_user创建一个模式,它允许我转储一个查询,该查询返回一个或多个用户及其各自的标签。我正在寻找类似于以下内容的响应:
我已经设法通过在 @post_dump 包装函数中包含第二个查询来拉取social_user模式中的标签来做到这一点,但是,这感觉像是一种黑客行为,而且对于大量用户来说似乎会很慢(更新:这很慢,我在 369 个用户上测试过)。我想我可以用 Marshmallow 的fields.Nested
field type做一些事情。有没有更好的方法可以只用一个 Peewee 查询来序列化这种关系?我的代码如下:
皮威模型
棉花糖模式
以下是一些演示功能的测试:
python - Flask-Marshmallow 的 init_app() 真的有必要吗?
Flask-Marshmallow 文档有这样的说法Marshmallow.init_app()
使用扩展名初始化应用程序。
它背后的代码似乎做了一些与 SQLAlchemy 会话管理相关的重要事情:
但是我一直在使用和开发我的应用程序一段时间,但没有包括对init_app
任何地方的调用,而且它似乎工作得很好。我正在使用 SQLAlchemy、Flask-SQLAlchemy 和 Marshmallow-SQLAlchemy(以及 Flask-Marshmallow)。
我不做会导致什么问题ma.init_app(app)
,为什么一切似乎都正常?
目前,我有一个database
和一个schema
模块;database
看起来像这样:
像这样schema
:
在我的顶层__init__.py
,我正在这样做:
这是一个 MVCE(放入mvce/__init__.py
,运行PYTHONPATH=. FLASK_APP=mvce flask run
,然后向 localhost:5000 发出 POST 请求,并将name
表单字段设置为某个值,然后发出 GET 请求以查看Customer
是否正确提交到数据库):