Flask 路由函数必须显式返回响应对象(例如 render_template() 的执行结果),若遗漏 return 语句,视图函数会默认返回 None,从而造成页面空白且无任何错误提示。
许多 Flask 初学者都曾遇到一个令人困惑的问题:明明调用了 render_template,浏览器却只显示空白页面,控制台也没有任何报错信息。排查半天,怀疑模板路径有误、Jinja2 语法写错,甚至质疑 Flask 本身存在缺陷。其实问题的根源往往简单到让人哭笑不得——忘了写 return。当路由函数执行完毕却不返回任何内容时,Flask 会默认返回 None,客户端自然接收不到完整的 HTML 响应。
✅ 正确写法(关键:必须 return)
from flask import Flask, render_template
app = Flask(__name__, template_folder='templates') # 注意路径相对于当前运行文件
@app.route('/')
def index():
return render_template('renderindex.html', username="Alice", userid="12345")⚠️ 错误示例(无 return,即使匹配到路由也不会返回任何响应):
@app.route('/') def index(): render_template('renderindex.html', username="Alice", userid="12345") # ❌ 静默失效
