【问题标题】:Using a custom parser with flask_smorest and/or marshmallow使用带有 flask_smorest 和/或 marshmallow 的自定义解析器
【发布时间】:2020-09-15 10:03:11
【问题描述】:

我正在使用flask-smorest,这是基于 Flask/Marshmallow 的 REST API 框架,并且希望能够解析使用 axios JavaScript 库发出的请求,特别是通过查询字符串传递的数组。

Axios 发送这样的数组:

/api/v1/items/?types[]=cd&types[]=dvd

我需要为此创建一个custom parser(另请参阅ticket I created 上的有用回复),以便我能够拼凑出一个基本的解析器来满足我的目的。

但是对于我的生活,我不知道如何告诉flask_smorest 或marshmallow 为我的API 的基于MethodView 的端点使用这个自定义解析器。

我还想在我的Schema 中创建一个自定义字段,但我也不知道如何访问查询字符串以便正确解析它。

那么在flask_smorest/marshmallow 中为特定类型的查询字符串数组编码集成解析器的最佳方法是什么?

【问题讨论】:

  • 请编辑您的问题以显示您的解析器,也许还有一个简化的案例来重现和测试。

标签: python flask marshmallow webargs


【解决方案1】:

假设您创建了一个如 webargs docs 中演示的解析器,您需要做的就是告诉您的烧瓶应用程序使用此自定义解析器代替默认的 FlaskParser

这是通过覆盖 Blueprint 并从 ArgumentsMixin 覆盖 ARGUMENTS_PARSER 来完成的:

import flask_smorest

class Blueprint(flask_smorest.Blueprint):

    ARGUMENTS_PARSER = CustomParser()

【讨论】:

    猜你喜欢
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2014-08-05
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    相关资源
    最近更新 更多