基于Flask框架,编写一段代码访问数据库,然后把数据展示在页面上,且数据表的列名都是动态从数据库获取的,使用pymysql连接数据库
时间: 2024-03-21 10:38:31 浏览: 61
好的,以下是一份基于 Flask 框架访问数据库并展示数据的代码示例,使用的是 pymysql 连接 MySQL 数据库,但是你可以根据自己的需求更改数据库配置和表结构。
``` python
from flask import Flask, render_template
import pymysql
app = Flask(__name__)
# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='username', password='password', db='database')
cursor = conn.cursor()
# 获取表的列名
cursor.execute("SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE table_name = 'example_table'")
columns = [column[0] for column in cursor.fetchall()]
# 定义路由
@app.route("/")
def index():
# 查询数据
cursor.execute("SELECT * FROM example_table")
data = cursor.fetchall()
return render_template("index.html", columns=columns, data=data)
if __name__ == "__main__":
app.run()
```
和前面的示例一样,我们首先连接了 MySQL 数据库,并获取了表 `example_table` 的列名。
在这个示例中,我们使用了 `pymysql` 模块来连接 MySQL 数据库,并使用了 `information_schema.COLUMNS` 系统表来获取表的列名。
接下来,我们定义了一个路由 `/`,在这个路由中,我们查询了表的所有数据,并把数据和列名传递到模板 `index.html` 中。
在模板 `index.html` 中,我们使用 Jinja2 模板引擎来动态生成表格,具体代码如下:
``` html
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<table>
<thead>
<tr>
{% for column in columns %}
<th>{{ column }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for row in data %}
<tr>
{% for value in row %}
<td>{{ value }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
```
在模板中,我们首先使用 `for` 循环来遍历所有列名,生成表头。接着,我们使用另一个 `for` 循环来遍历所有数据行,并生成表格的数据部分。
这样,我们就完成了一个基于 Flask 框架访问 MySQL 数据库并展示数据的示例。
阅读全文