You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask项目中无法从SQL表获取电影名称到HTML页面求助

问题排查与解决步骤

1. 明确查询结果的数据结构

fetchall()默认返回元组列表(示例:[('肖申克的救赎',), ('霸王别姬',)]),如果模板里用{{ movie.movie_name }}这种键名访问,肯定拿不到值。

两种解决方式:

  • 模板里用索引直接取值:{{ movie[0] }}(前提是电影名称是查询结果的第一个字段)
  • 在main.py里改用字典游标,让查询结果返回字典列表:
    # 不同数据库驱动写法略有差异,以MySQL为例
    cursor = conn.cursor(dictionary=True)
    cursor.execute("SELECT movie_name FROM movies")
    movies = cursor.fetchall()
    # 此时movies结构为[{'movie_name': '肖申克的救赎'}, ...],模板可直接用{{ movie.movie_name }}
    

2. 检查SQL查询语句是否漏选字段

确认SELECT语句明确包含电影名字段,别写成SELECT id FROM movies这种只查询ID的语句,要写SELECT movie_name FROM movies(或你表中对应的字段名,比如name)。

3. 核对后端与模板的变量名一致性

确保main.py传递给模板的变量名和模板循环使用的变量名完全匹配:

  • 后端代码:return render_template('playback.html', movies=movies)
  • 模板循环:{% for movie in movies %} (这里的movies必须和后端传递的变量名一致)

4. 打印原始数据排查问题

如果还是找不到问题,直接打印数据确认:

  • 在main.py里添加print(movies),运行Flask后查看控制台输出,确认是否存在电影名称数据
  • 或者在模板里临时添加<p>原始数据:{{ movie }}</p>,直观查看每条数据的结构,再调整访问方式

内容的提问来源于stack exchange,提问作者Ehds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 02:18:25