python - Python和Flask,在html页面上显示mysql DB中的数据
问题描述
每次我尝试在html
页面上显示我的 MySQL 数据库中的数据时,它只会显示记录的第一列或仅显示列本身的名称。
例如:
我的数据库
D b
id names
1 Harry
2 Snape
主文件
@app.route("/db", methodes = ["POST", "GET"])
def db():
if request.method == "POST":
cur = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cur.execute("SELECT names FROM db WHERE id = 1")
output = cur.fetchone()
cur. close
return render_template("db.html", data = output)
else:
return render_template("db.html")
db.html
{% extends "base.html" %}
{% block title %}db{% endblock %}
{% block content %}
<form method="POST">
<input type="submit" value="show data">
</form>
<!-- Output 1 -->
<p>{{data}}</p>
<!-- Output 2 -->
{% for i in data %}
<p>{{i}}</p>
{% endfor %}
<!-- Output 3 -->
{% for i in data %}
<p>{{i[0]}}</p>
{% endfor %}
{% endblock %}
输出 1 = {'names': 'Harry'}
输出 2 = 名称
输出 3 = n
我只想获取记录,而不是列名,我该怎么做(输出 = Harry)
我对这一切都很陌生,我很高兴能有一个简短的解释:)
解决方案
您可以在 Python 中搜索 Dictionary 。
这是您的 db.html 代码中的一些更改:
{% extends "base.html" %}
{% block title %}db{% endblock %}
{% block content %}
<form method="POST">
<input type="submit" value="show data">
</form>
<!-- Output 1 -->
<p>{{data['names']}}</p>
<!-- Output 2 -->
{% for key, value in data.items() %}
<p>{{value}}</p>
{% endfor %}
{% endblock %}
推荐阅读
- reactjs - 从回调状态更改后反应组件未呈现
- flutter - Admob 广告不显示
- python - 在最新的 PyScripter 4 上运行 ArcGIS Pro ArcPy 时出现问题
- prolog - 从列表列表中获取最短列表
- amazon-web-services - 如何检索 ParlAI Mturk 沙盒分配的结果?
- reactjs - React-Native Expo 将图像从缓存移动到应用程序文件夹错误
- azure - Azure 应用程序网关和证书 SAN
- html - 如何使用 VBA 在 Internet Explorer 中没有 elementID 的字段中输入值
- jenkins - Github PR 触发多个 Jenkins 作业但只报告最后一个作业的状态
- windows - 如何检查我正在运行哪个版本的 WSL2?