基于Flask框架,编写一段代码访问数据库,然后把数据展示在页面上,可以在页面上进行数据的增删改查和回退,且数据表的列名都是动态从数据库获取的,使用pymysql连接数据库
时间: 2024-03-28 14:41:33 浏览: 46
一个简单的后端开发脚本示例,使用Python的Flask框架来创建一个基本的RESTful API
好的,我可以为您提供一个简单的示例代码:
```python
from flask import Flask, render_template, request
import pymysql
app = Flask(__name__)
# 数据库连接配置
db_config = {
'host': 'localhost',
'port': 3306,
'user': 'your_username',
'password': 'your_password',
'database': 'your_database',
'charset': 'utf8mb4'
}
# 首页展示所有数据
@app.route('/')
def index():
# 连接数据库
db = pymysql.connect(**db_config)
cursor = db.cursor()
# 获取表名和列名
cursor.execute('SHOW TABLES;')
tables = cursor.fetchall()
table_name = tables[0][0] # 假设只有一个表
cursor.execute(f'DESC {table_name};')
columns = cursor.fetchall()
column_names = [col[0] for col in columns]
# 获取所有数据
cursor.execute(f'SELECT * FROM {table_name};')
data = cursor.fetchall()
# 关闭数据库连接
db.close()
return render_template('index.html', column_names=column_names, data=data)
# 新增数据
@app.route('/add', methods=['POST'])
def add():
# 获取表名和列名
db = pymysql.connect(**db_config)
cursor = db.cursor()
cursor.execute('SHOW TABLES;')
tables = cursor.fetchall()
table_name = tables[0][0] # 假设只有一个表
cursor.execute(f'DESC {table_name};')
columns = cursor.fetchall()
column_names = [col[0] for col in columns]
# 获取新增数据
new_data = [request.form.get(col) for col in column_names]
# 插入数据
cursor.execute(f"INSERT INTO {table_name} VALUES ({','.join(['%s']*len(column_names))})", new_data)
db.commit()
# 关闭数据库连接
db.close()
return 'success'
# 修改数据
@app.route('/update', methods=['POST'])
def update():
# 获取表名和列名
db = pymysql.connect(**db_config)
cursor = db.cursor()
cursor.execute('SHOW TABLES;')
tables = cursor.fetchall()
table_name = tables[0][0] # 假设只有一个表
cursor.execute(f'DESC {table_name};')
columns = cursor.fetchall()
column_names = [col[0] for col in columns]
# 获取修改的数据
update_data = [request.form.get(col) for col in column_names]
id = update_data.pop(0) # 假设第一个列是id
# 修改数据
cursor.execute(f"UPDATE {table_name} SET {','.join([f'{col}=%s' for col in column_names[1:]])} WHERE id=%s", update_data + [id])
db.commit()
# 关闭数据库连接
db.close()
return 'success'
# 删除数据
@app.route('/delete', methods=['POST'])
def delete():
# 获取表名和列名
db = pymysql.connect(**db_config)
cursor = db.cursor()
cursor.execute('SHOW TABLES;')
tables = cursor.fetchall()
table_name = tables[0][0] # 假设只有一个表
# 获取删除的数据id
id = request.form.get('id')
# 删除数据
cursor.execute(f"DELETE FROM {table_name} WHERE id=%s", (id,))
db.commit()
# 关闭数据库连接
db.close()
return 'success'
if __name__ == '__main__':
app.run()
```
这个代码使用了 Flask 框架,使用 pymysql 库进行数据库连接。在首页展示所有数据,可以新增、修改、删除数据。所有数据的列名都是动态从数据库获取的。您需要在 templates 目录下创建一个 index.html 文件,用于展示数据和操作。
阅读全文