每次我尝试在 html
页面上显示 MySQL 数据库中的数据时,它只会显示记录的第一列或仅显示列本身的名称。
例如:
我的数据库
数据库
id names
1 Harry
2 Snape
main.py
@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
我只想获取记录,而不是列名,我该怎么做(Output = Harry)
我对这一切都很陌生,我很高兴能得到一个简短的解释:)
最佳答案
您可以在Python中搜索字典。
这是 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 %}
关于Python和Flask,在html页面上显示mysql数据库中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66212883/