首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >烧瓶-apispec不使用GET查询的值填充kwargs (文档中示例代码的实现)

烧瓶-apispec不使用GET查询的值填充kwargs (文档中示例代码的实现)
EN

Stack Overflow用户
提问于 2021-05-17 17:05:59
回答 1查看 511关注 0票数 3

我使用flask-apispecwebargs来定义简单API的类型。下面我给出了一个很小的例子,它再现了这个问题,即kwargs对象是空的。

服务器代码:

代码语言:javascript
复制
import flask
from flask_apispec import use_kwargs
from webargs import fields

app = flask.Flask(__name__)


@app.route('/pets', methods=["GET"])
@use_kwargs({'species': fields.Str()})
def list_pets(**kwargs):
    assert False, kwargs  # NO DATA HERE


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

简单客户端脚本:

代码语言:javascript
复制
import requests
requests.get("http://localhost:5000/pets", params={"species": "cat"})

为什么kwargs是空的?我看不出上面的例子与瓶-apispec文档中的例子有什么不同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-19 18:49:21

我也遇到了同样的问题,我的文档也有一点问题。

引用理发师 (这就是我在幕后理解flask-apispec使用的内容),我找到了一些示例,并能够实现它。

缺少的是location参数。在你的例子中,应该是:

代码语言:javascript
复制
@app.route('/pets', methods=["GET"])
@use_kwargs({'species': fields.Str()}, location="query")
def list_pets(**kwargs):
    print(kwargs) # Now "species" should be here if sent through the query

我使用的是flask-apispec v0.11.1,它在我的系统上安装了webargs v8.1.0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67574137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档