flask_restful reqparse.RequestParser() help参数无法生效的问题

发布于 2022-09-07 19:25:13 字数 887 浏览 17 评论 0

在使用flask_restful的参数解析的时候给add_argument传入help参数的时候如果产生报错的话不会出现help的提示信息,代码如下:

# -*-coding:utf-8 -*-

from flask_restful import reqparse
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def index():
    parser = reqparse.RequestParser()
    parser.add_argument('page', type=int, help='invalid argument')
    args = parser.parse_args()
    return jsonify(args), 200

if __name__ == '__main__':
    app.run(port=9000, debug=True)

当通过http://localhost:9000/?page=9.1 访问的时候,预期应该返回'invalid argument'的400错误,但实际的结果是返回默认的"400 Bad Request The browser (or proxy) sent a request that this server could not understand."错误提示。
请教:问题出在哪里?如果flask_restful参数解析的类不能单独拿出来使用,有没有更好的参数检验和转换的方法或者工具?谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ま柒月 2022-09-14 19:25:13

你好,你需要明白的是参数解析是在什么时候生效的。
请按照以下代码调整:

# -*-coding:utf-8 -*-

from flask_restful import reqparse
from flask import Flask, jsonify

def parsers():
    parser = reqparse.RequestParser()
    parser.add_argument('page', type=int, help='invalid argument')
    return parser.parse_args()

app = Flask(__name__)

    
@app.route('/')
def index():
    args = parsers()
    return jsonify(args), 200

if __name__ == '__main__':
    app.run(port=9000, debug=True)

参数的解析在预编译阶段就已经完成了映射。
同时,杂糅的使用flask和flask—RESTful 并不好。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文