Python和Flask,在html页面上显示mysql数据库中的数据

标签 python mysql flask

每次我尝试在 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/

相关文章:

python - 如何在日期python中转换YYMMDDHH时间戳

mysql - MySQL如何只在一个表中的列值与另一个表中的列值相同时才从两个表中返回数据?

python - 将 "external' 类模型与 flask sqlalchemy 相关联

python - wxpython phoenix 说 Frame init args 错误

python - python中的C双重限制

mysql - Rails 计算 has_many 关系并按子模型中的另一个字段分组

python - 在 Flask 中使用主机名而不是 IP 地址

python - SQLAlchemy 连接池和 session

python - 计算结构有多深的最简单方法?

java - 在另一个 Activity 的 ListView 中显示结果 JSON 时出错