Python Web应用中无法按工作日小时展示可用性的问题排查
错误原因排查
核心问题:GET请求未传递模板所需变量
当用户以GET方式访问/create_teacher页面时,路由最后一行的return render_template('create_teacher.html')没有传入days_of_week和hours变量,而HTML模板中渲染表格的{% for day in days_of_week %}和{% for hour in hours %}循环完全依赖这两个变量。由于变量未定义,模板引擎会直接跳过这些循环块,导致表格的表头、内容都无法渲染,只显示静态的<h3>Availability:</h3>标题。
次要问题:POST分支存在死代码
在POST请求处理逻辑中,return redirect(url_for('success'))之后的return render_template(...)永远不会被执行,这行代码属于冗余代码,可直接删除。
修复方案
- 修改GET请求的渲染语句,传入模板所需变量:
# 原代码 return render_template('create_teacher.html') # 修改后 return render_template('create_teacher.html', days_of_week=days_of_week, hours=hours)
- (可选)删除POST分支中
redirect之后的无效return语句。
修复后,页面加载时模板能正常获取到days_of_week和hours,循环会渲染出完整的可用性表格。
内容的提问来源于stack exchange,提问作者mrb
相关产品推荐
相关产品推荐

