我一直在研究如何使用flask在html上显示来自mysql数据库的数据。
我的连接到数据库是成功的和html页面显示。只是不显示的数据
想要显示数据库中的“info_table”。有2个属性“name”和“age”
行“app.route('/display',methods=['GET'])”是否正确?
app.py
from flask import Flask, render_template, request
from flask_mysqldb import MySQL
app = Flask(__name__)
app.debug = True
app.config['MYSQL_HOST'] = ''
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'DB'
mysql = MySQL(app)
app.route('/display', methods=['GET'])
def display():
cursor = mysql.connection.cursor()
cursor.execute("SELECT * FROM info_table")
data = cursor.fetchall()
return render_template('display.html', info_table=data)
app.run(host='localhost', port=3306)
display.html:
t<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<style>
td {
width: 150px;
text-align: center;
border: 1px solid black;
padding: 5px;
}
</style>
<table>
<thead>
<tr>
<th>name</th>
<th>age </th>
</tr>
</thead>
<tbody>
{% for row in data %}
<tr>
<td>{{row[0]}}</td>
<td>{{row[1]}}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
1条答案
按热度按时间thigvfpy1#
首先我要感谢你一直在尝试和询问。
关于
app.py
app.route('/display', methods=['GET'])
中的请求处理程序,您应该将其定义为一个装饰器,如@app.route('/display', methods=['GET'])
,然后在display.html
中,在for循环中将data
变量更改为info_table
,因为这是您将数据Map到它的真实的属性