我想基于Accept HTTP标头路由到其他Flask视图,例如:
@api.route('/test', accept='text/html')
def test_html():
return "<html><body>Test</body></html>"
@api.route('/test', accept='text/json')
def test_json():
return jsonify(test="Test")
Run Code Online (Sandbox Code Playgroud)
我没有在Flask使用的Werkzeug Rule构造函数中找到相关选项。它是缺少的功能还是有可能以不同的方式实现相同的效果,例如通过在路由之前拦截和修改URL路径?
我不想将视图合并为一个视图,因为这将使代码显着复杂化,其中有许多视图位于不同的蓝图中。
我知道有人问过类似的问题,但没人用Flask回答。可以在不同的Web框架中执行此操作,例如在Pyramid中使用谓词 -可以在此答案中找到示例代码。