从URL传递关键字参数到Flask api



我尽可能地剥离了代码片段。我想在我的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

最新更新