我尽可能地剥离了代码片段。我想在我的flask应用程序中使用任意数量的传入关键字和值。例如:http://localhost:5000/duck?order=90我想使用order=90作为字典{"order"= 90}或将其值设置为变量
app.py:
from flask import Flask
from flask_restful import Api
from myresource import Quack
def create_app():
app = Flask(__name__)
register_resources(app)
return app
def register_resources(app):
api = Api(app)
api.add_resource(Quack, '/duck')
if __name__ == '__main__':
app = create_app()
app.run(port=5000, debug=True)
myresource.py:
from flask_restful import Resource
from http import HTTPStatus
from webargs import fields
from webargs.flaskparser import use_kwargs
class Quack(Resource):
@use_kwargs({"order" : fields.Int(missing=20)}
def get(self, order):
return order, HTTPStatus.OK
令人惊讶的是,如果我测试这个应用程序,它在任何情况下都返回20,因此,参数没有传递。我的虫子在哪里?
或者,有人知道一个工作的例子吗?
谢谢!
我已经尝试过这个:https://flask-restful.readthedocs.io/en/latest/intermediate-usage.html?highlight=kwargs,但它根本不起作用,并退出在resource_class_kwargs。
我也从这个社区尝试了一些不同的方法,但它们都没有达到预期的效果。
上面的方法来自这里:https://github.com/TrainingByPackt/Python-API-Development-Fundamentals/blob/master/Lesson08/Exercise54/resources/recipe.py
终于,一天过去了:
它在某种程度上起作用了。myresource.py:
from flask import request from flask_restful import Resource from http import HTTPStatus class Quack(Resource): def get(self): order = request.args.get("order") return order, HTTPStatus.OK