gpt4 book ai didi

python - 将响应 header 添加到 Flask Web 应用程序

转载 作者:行者123 更新时间:2023-12-03 15:32:13 36 4
gpt4 key购买 nike

我有一个flask web 应用程序,它使用render_template 如下。我需要在响应中添加一个Content-Security-Policy 作为额外的http 响应头。我尝试了以下方法,但都失败了并给了我 500。

1.

from flask import \
Flask, \
render_template
app = Flask(__name__,template_folder='tmpl')
@app.route('/')
def index():
resp =make_response(render_template('index.html'))
resp.headers['Content-Security-Policy']='default-src \'self\''
return resp

if __name__ == '__main__':
app.run(host='0.0.0.0', port=3001)

2.
@app.route('/')
def index():
resp =render_template('index.html')
resp.headers.add('Content-Security-Policy','default-src \'self\'')
return resp

if __name__ == '__main__':
app.run(host='0.0.0.0', port=3001)

这里有什么问题?

在终端上,当我以 localhost:3001 访问 Web 应用程序时,我看到以下内容

127.0.0.1 - - [06/Apr/2015 01:45:01] "GET/HTTP/1.1"500 -

最佳答案

render_template返回一个字符串,而不是一个响应。从 View 返回的字符串会自动包装在 Flask 的响应中,这就是您可能会感到困惑的原因。使用呈现的模板构建响应。

from flask import make_response
r = make_response(render_template('index.html'))
r.headers.set('Content-Security-Policy', "default-src 'self'")
return r

关于python - 将响应 header 添加到 Flask Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29464276/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com