我在Flask写代理。代理应该转发除一个小子集之外的所有请求,为此应该执行一些额外的检查。 由于我有各种各样的路线,我在文档中找到了这个例子 匹配所有网址:
from flask import Flask
app = Flask(__name__)
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def catch_all(path):
return 'You want path: %s' % path
if __name__ == '__main__':
app.run()
我想知道的是,有一个处理这个路径子集的视图函数和另一个处理所有其他路径的视图函数的最佳方法是什么?
答案 0 :(得分:0)
Flask有装饰器来执行请求的动作before handling。
@app.after_request
def catch_all(response):
# * additional checks here *
您可以通过返回数据停止正常处理
如果这些函数中的任何一个返回一个值,它就像处理视图中的返回值一样进行处理,并停止进一步的请求处理。
通常用于身份验证或权限检查。