Flask运行时调用render_template无法渲染HTML问题求助
问题排查结果
产生原因
- 路由定义语法错误:Flask 路由依赖
@app.route()装饰器完成视图函数和URL路径的绑定,代码中路由行漏写了装饰器必需的@符号,写成了app.route('/'),导致根路径没有绑定对应的index视图函数,请求根本不会走到模板渲染逻辑。 - 模板目录不符合默认规则:Flask 默认会从与运行脚本同级的
templates文件夹中查找render_template传入的HTML文件,如果index.html没有放在该目录下,即使路由配置正确也会抛出模板找不到的错误,无法完成渲染。
修复方案
- 补全路由装饰器的
@符号,修正后的完整代码如下:
from flask import Flask,render_template import psycopg2 import psycopg2.extras app = Flask(__name__) # 路由前补@装饰器标记 @app.route('/') def index(): return render_template('index.html') if __name__ == "__main__": app.run(debug=True, port=9001)
- 调整项目目录结构,符合Flask默认模板查找规则,参考结构:
项目根目录/ ├── app.py # 你的Flask运行脚本 └── templates/ └── index.html # 要渲染的HTML页面
如果需要自定义模板存放路径,可以在初始化Flask实例时手动指定:
# 替换为你实际存放HTML文件的文件夹路径 app = Flask(__name__, template_folder='你的自定义模板目录路径')
验证方式
保存修改后重新运行脚本,在浏览器访问http://127.0.0.1:9001即可正常看到渲染后的HTML页面。
内容的提问来源于stack exchange,提问作者Naman Gautam
相关产品推荐
相关产品推荐

