bea*_*rdc 5 python decorator flask python-decorators
我有一个装饰器(调用它deco),我想应用于我的Flask应用程序中的每个视图,以便修改响应头以避免IE的兼容模式(res.headers.add("X-UA-Compatible", "IE=Edge").我喜欢它
@app.route('/')
@deco
def index():
return 'Hello world'
Run Code Online (Sandbox Code Playgroud)
我目前使用子类Flask来创建应用程序(以修改jinja行为)
class CustomFlask(Flask):
jinja_options = ...
app = CustomFlask(__name__, ...)
Run Code Online (Sandbox Code Playgroud)
有没有办法可以修改CustomFlask将deco装饰器应用到所有响应中?
要为每个传出响应添加标头,请使用@Flask.after_request钩子:
@app.after_request
def add_ua_compat(response):
response.headers['X-UA-Compatible'] = 'IE=Edge'
return response
Run Code Online (Sandbox Code Playgroud)
有一个烧瓶延伸,做正是这一点; 注册钩子并添加标题.