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

Python新手求助:MySQL结果列表如何在HTML中遍历输出

解决Python+MySQL查询结果在HTML中遍历输出的问题

嘿,别着急,我帮你梳理下问题所在,一步步搞定它!

首先,你的HTML模板片段里有几个明显的语法错误,先给你指出来:

  • 模板里的{% print(mylist[1]) %}是错误用法:在Jinja2模板(Flask/Django这类框架常用的模板引擎)中,输出变量应该用{{ 变量名 }},而且你既然在遍历mylist,应该用循环里的row来访问当前项,而不是直接取mylist[1](这只会固定输出列表第二项)。
  • <h2{{ title }}/h2>标签语法错误:正确写法是<h2>{{ title }}</h2>,要把变量包裹在双大括号里,同时标签要正确闭合。
  • 你的video标签未完整闭合,最后应该补充</video>。

接下来,分两种常见场景给你正确的遍历示例:

场景1:MySQL查询结果为字典列表(使用字典游标)

如果你的Python后端用了字典游标(比如pymysql的DictCursor),那么mylist里的每个row都是字典,键对应数据库的字段名。假设你的表有title和link字段,模板可以这么写:

{% for row in mylist %}
    <h2>{{ row.title }}</h2>
    <video width="520" controls>
        <source src="{{ row.link }}" type="video/mp4">
        你的浏览器不支持video标签
    </video>
{% endfor %}

场景2:MySQL查询结果为元组列表(默认游标)

如果用的是默认游标,查询结果是元组,每个元组的元素对应查询字段的顺序。比如你执行的是SELECT title, link FROM your_table,那么row[0]对应title,row[1]对应link,模板写法:

{% for row in mylist %}
    <h2>{{ row[0] }}</h2>
    <video width="520" controls>
        <source src="{{ row[1] }}" type="video/mp4">
        你的浏览器不支持video标签
    </video>
{% endfor %}

再补充后端关键代码示例(以pymysql+Flask为例),确保你正确把列表传给模板:

import pymysql
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    # 连接MySQL
    conn = pymysql.connect(host='localhost', user='your_user', password='your_pwd', db='your_db')
    # 可选:使用字典游标,方便通过字段名访问数据
    cursor = conn.cursor(pymysql.cursors.DictCursor)
    # 执行查询语句
    cursor.execute("SELECT title, link FROM your_video_table")
    # 获取所有查询结果存入列表
    mylist = cursor.fetchall()
    # 关闭游标与连接
    cursor.close()
    conn.close()
    # 将列表传递给模板
    return render_template('your_template.html', mylist=mylist)

if __name__ == '__main__':
    app.run(debug=True)

最后再检查两个关键点:

  • 确认后端传递的mylist确实是包含所有查询结果的列表,没有为空或格式异常。
  • 模板里的{% for %}和{% endfor %}标签要配对,不能遗漏闭合标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:42:37