gpt4 book ai didi

python - 不覆盖处理程序的路由层次结构

转载 作者:太空宇宙 更新时间:2023-11-03 21:07:12 25 4
gpt4 key购买 nike

我正在编写一个 flask 应用程序。拥有多个端点是有意义的,如下所示:

prefix + '/'
prefix + '/<id>'
prefix + '/<id>/parameters'
prefix + '/<id>/parameters/<param>'

但是,如果我尝试在蓝图中全部声明它们,则会收到 AssertionError: Handler is overwriting Existing for endpoint _blueprintname_._firsthandlername_

有什么办法可以解决这个问题吗?我知道以前在 .net core 等技术中已经直接完成了这一点。提前致谢。

最佳答案

如果您打算在 route 添加许多参数,您可以查看 this flask 模块。它可以帮助您将路由分配给资源。

您可以按如下方式构建一组路由:

from flask import Flask, request
from flask_restful import Resource, Api, reqparse

app = Flask(__name__)
api = Api(app)

class Some(Resource):
def get(self, id=None, params=None):
"""
In order to allow empty params for routes, the named arguments
must be initialized
"""
if id and params:
return {'message':'this is get with id and params'}
if id:
return {'message':'this is get with id'}

return {'message':'this is get'}


def post():
"""
One can use here reqparse module to validate post params
"""
return {'message':'this is post'}

# Add the resource to the service
api.add_resource(Some, '/', '/<string:id>','/<string:id>/<string:params>', ...)

# start the service
if __name__ == '__main__':
app.run(debug=True)

关于python - 不覆盖处理程序的路由层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55322959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com