python - Flask-Restful 忽略蓝图的 url_prefix

标签 python flask flask-restful

我想使用 Flask 蓝图将 Flask-Restful 资源组织到单独的 URL 前缀中。无论我设置什么 url 前缀(在蓝图创建或注册期间),所有内容都会映射到原始路由路径。如何正确使用 Restful 和蓝图?

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

api.add_resource(Building, '/<int:id>', endpoint='building')
api.add_resource(Jack, '/<int:id>', endpoint='jack')

building_api = Blueprint('building_api', __name__)
jack_api = Blueprint('jack_api', __name__)

app.register_blueprint(building_api, url_prefix='/buildings')
app.register_blueprint(jack_api, url_prefix='/jacks')

全部documentation我发现这些现在应该可以在 /buildings/<int:id> 上找到。和/jacks/<int:id> ,但这两个 url 都是 404,而我可以访问 /<int:id> 的大楼。 。对 add_resource 中的路径进行硬编码修复了它,但违背了 url_prefix 的要点.

最佳答案

您需要pass the blueprintApi 实例,而不是应用程序。

building_bp = Blueprint('buildings', __name__)
building_api = Api(building_bp)
building_api.add_resource(Building, '/<int:id>')
app.register_blueprint(building_bp, url_prefix='/buildings')

关于python - Flask-Restful 忽略蓝图的 url_prefix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32488098/

相关文章:

python - 使用 lxml 解析段落标记的子项时缺少子项

python - 使用服务器发送的事件浏览器缓存以前的数据。如何防止浏览器缓存

python - Flask Assets 仅在一个文件中查找更改

python - 所请求的 URL 不允许使用该方法。在 flask 中

python - flask - AttributeError : 'module' object has no attribute 'items'

python - flask 如何将所有警告异常(完整堆栈跟踪)记录到文件中

python - 从不同目录执行 python 文件

来自 yahoo 的 python lxml etree applet 信息

python - 重复元素后拆分列表

python - 如何使用 marshmallow 和 flask_restful 加载参数?