我有一个装饰器(称之为deco
),我想将其应用于我的Flask应用程序中的每个视图,以便修改响应头以避免IE的兼容模式({{1 }})。我像
res.headers.add("X-UA-Compatible", "IE=Edge"
我目前使用@app.route('/')
@deco
def index():
return 'Hello world'
的子类来创建应用程序(以修改jinja行为)
Flask
我是否有办法修改class CustomFlask(Flask):
jinja_options = ...
app = CustomFlask(__name__, ...)
以将CustomFlask
装饰器应用于所有回复?
答案 0 :(得分:7)
要为每个传出回复添加标头,请改用@Flask.after_request
hook:
@app.after_request
def add_ua_compat(response):
response.headers['X-UA-Compatible'] = 'IE=Edge'
return response
有Flask extension 完全这个;注册钩子并添加标题。
答案 1 :(得分:1)
您可以考虑编写自定义WSGI
中间件。您可以抓住所有应用程序的响应并根据需要扩充标题。 quickstart讨论了如何挂钩中间件,并且关于如何向WSGI
start_response
教程并不缺乏