python 网页数据库增删改查图形化
时间: 2025-02-03 10:10:47 浏览: 46
### Python Web GUI 实现数据库 CRUD 操作
为了创建一个用于执行数据库增删改查 (CRUD) 操作的Python Web 图形用户界面(GUI),通常会选择基于Web框架和前端技术栈相结合的方式来构建。一种常见的方案是使用Flask 或 Django作为后端框架,搭配React、Vue.js或其他JavaScript库/框架来处理前端交互。
#### 使用 Flask 和 SQLite 的简单示例
下面是一个利用Flask框架连接SQLite数据库并提供基本CRUD功能的小型应用实例:
```python
from flask import Flask, request, jsonify
import sqlite3
app = Flask(__name__)
DATABASE = 'example.db'
def get_db_connection():
conn = sqlite3.connect(DATABASE)
conn.row_factory = sqlite3.Row
return conn
@app.route('/items', methods=['GET'])
def read_items():
conn = get_db_connection()
items = conn.execute('SELECT * FROM items').fetchall()
conn.close()
return jsonify([dict(item) for item in items])
@app.route('/item/<int:id>', methods=['GET'])
def read_item(id):
conn = get_db_connection()
item = conn.execute('SELECT * FROM items WHERE id=?', (id,)).fetchone()
conn.close()
if item is None:
return '', 404
return jsonify(dict(item))
@app.route('/item', methods=['POST'])
def create_item():
data = request.get_json()
name = data['name']
conn = get_db_connection()
cur = conn.cursor()
cur.execute('INSERT INTO items (name) VALUES (?)', (name,))
conn.commit()
new_id = cur.lastrowid
conn.close()
response = {'message': f'Item created with ID {new_id}'}
return jsonify(response)
@app.route('/item/<int:id>', methods=['PUT'])
def update_item(id):
data = request.get_json()
name = data['name']
conn = get_db_connection()
updated_rows = conn.execute(
'UPDATE items SET name = ? WHERE id = ?',
(name, id)
).rowcount
conn.commit()
conn.close()
message = f'{updated_rows} row(s) affected'
response = {'message': message}
return jsonify(response)
@app.route('/item/<int:id>', methods=['DELETE'])
def delete_item(id):
conn = get_db_connection()
deleted_rows = conn.execute(
'DELETE FROM items WHERE id = ?',
(id,)
).rowcount
conn.commit()
conn.close()
message = f'{deleted_rows} row(s) affected'
response = {'message': message}
return jsonify(response)
if __name__ == '__main__':
app.run(debug=True)
```
此代码片段展示了如何通过RESTful API接口与客户端通信完成对`items`表的基本操作[^1]。
对于更复杂的业务逻辑以及更好的用户体验,则可能需要引入更多组件和技术,比如采用Django REST framework简化API开发过程;或者选用像AdminLTE这样的HTML模板加速页面布局设计;还可以考虑集成Alembic来进行数据库迁移管理[^3]。
阅读全文
相关推荐


















