使用flask框架查询mysql 数据库的status表中字段is_show(0开,1关)并将表中所有数据显示给show.html 页面,页面有个按钮空值 is_show 字段
时间: 2024-03-13 13:45:40 浏览: 141
好的,我理解了你的问题。首先,需要安装Flask和MySQL驱动程序以连接MySQL数据库。你可以使用以下命令安装它们:
```
pip install Flask
pip install pymysql
```
接下来,你需要编写一个Flask应用程序来查询MySQL数据库中的数据并将其显示在show.html页面上。这里是一个示例应用程序:
```python
from flask import Flask, render_template
import pymysql
app = Flask(__name__)
@app.route('/')
def show():
# 连接MySQL数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='database_name')
cursor = conn.cursor()
# 查询status表中所有数据
cursor.execute('SELECT * FROM status')
data = cursor.fetchall()
# 关闭数据库连接
cursor.close()
conn.close()
# 渲染show.html模板并传递数据
return render_template('show.html', data=data)
if __name__ == '__main__':
app.run()
```
在这个应用程序中,我们使用了Flask的`render_template`函数来渲染show.html模板,并传递了从MySQL数据库查询到的数据。现在,我们需要在show.html模板中显示这些数据,并添加一个按钮来更新is_show字段。
下面是show.html模板的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>MySQL Status</title>
</head>
<body>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Status</th>
<th>Action</th>
</tr>
{% for row in data %}
<tr>
<td>{{ row[0] }}</td>
<td>{{ row[1] }}</td>
<td>{{ row[2] }}</td>
<td><button onclick="updateStatus({{ row[0] }}, {{ row[2] }})">Update</button></td>
</tr>
{% endfor %}
</table>
<script type="text/javascript">
function updateStatus(id, status) {
// 发送POST请求更新is_show字段
var xhr = new XMLHttpRequest();
xhr.open('POST', '/update', true);
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText);
}
};
xhr.send(JSON.stringify({'id': id, 'status': status}));
}
</script>
</body>
</html>
```
在这个模板中,我们使用了Flask的模板引擎来循环遍历从服务器传递过来的数据,并将它们显示在HTML表格中。还添加了一个按钮来更新is_show字段。当用户点击按钮时,会触发JavaScript函数`updateStatus`,该函数发送一个POST请求到服务器以更新is_show字段。
现在,我们需要添加一个新的路由来处理POST请求并更新MySQL数据库中的数据。下面是更新数据的示例代码:
```python
@app.route('/update', methods=['POST'])
def update():
# 获取POST请求中传递的数据
id = request.json['id']
status = request.json['status']
# 连接MySQL数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='database_name')
cursor = conn.cursor()
# 更新is_show字段
new_status = 0 if status == 1 else 1
cursor.execute('UPDATE status SET is_show=%s WHERE id=%s', (new_status, id))
conn.commit()
# 关闭数据库连接
cursor.close()
conn.close()
# 返回更新成功的消息
return 'Status updated successfully!'
```
在这个路由中,我们首先获取POST请求中传递的数据,然后连接MySQL数据库并更新is_show字段。最后,返回一个成功的消息。
现在,你可以启动这个应用程序并在浏览器中访问它。你将看到一个表格显示MySQL数据库中的数据,并且每一行都有一个按钮来更新is_show字段。当你点击按钮时,它将发送一个POST请求到服务器并更新数据库中的数据。
阅读全文