Flask中render_template与make_response使用问题求助
Flask中使用make_response包裹render_template后页面不显示内容的排查方案
你当前的代码语法本身没有错误,make_response(render_template('home.html'))和直接返回render_template('home.html')的预期效果完全一致——因为render_template本身就会生成一个包含模板内容的响应对象,make_response只是用来对响应进行额外修改(比如设置Cookie、自定义响应头)的工具。
可以从以下几点排查问题:
确认模板文件路径
Flask默认会从项目根目录下的templates文件夹加载模板,你的项目结构必须符合这个规则:你的项目/ index.py templates/ home.html如果你之前直接返回
render_template能正常显示,这条可以快速确认下路径是否没变动。强制刷新浏览器缓存
浏览器可能缓存了旧的页面内容,按下Ctrl+F5(Windows/Linux)或Cmd+Shift+R(Mac)强制刷新页面,查看是否能显示内容。查看错误日志和请求状态
- 查看Flask终端的日志:如果服务器端有错误(比如模板找不到),会在这里输出具体报错信息。
- 打开浏览器开发者工具(按F12),切换到Network标签,刷新页面后查看请求状态码:
- 若为404:说明模板文件路径存在问题
- 若为500:说明服务器端有代码错误,结合终端日志排查
- 若为200:点击该请求查看Response标签,确认返回的内容是不是
<h1>Hi world </h1>,如果内容正确但页面不显示,可能是浏览器渲染的问题。
显式指定响应状态码
试试在make_response里显式传入200状态码,虽然默认就是这个值,但有时候能解决偶发的响应异常:def home(): return make_response(render_template('home.html'), 200)
内容的提问来源于stack exchange,提问作者williamtellezve
相关产品推荐
相关产品推荐

