帮我找MVC模式实现CRUD操作代码及运行图
时间: 2024-01-02 17:04:08 浏览: 32
好的,这里是一个使用MVC模式实现CRUD操作的示例代码和运行图:
首先是模型(Model)的代码:
```python
class UserModel:
def __init__(self, db):
self.db = db
def create_user(self, username, password):
# 创建用户并将用户信息保存到数据库中
self.db.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, password))
def read_user(self, user_id):
# 从数据库中读取指定用户的信息
cursor = self.db.execute("SELECT * FROM users WHERE id=?", (user_id,))
return cursor.fetchone()
def update_user(self, user_id, username, password):
# 更新指定用户的信息
self.db.execute("UPDATE users SET username=?, password=? WHERE id=?", (username, password, user_id))
def delete_user(self, user_id):
# 删除指定用户的信息
self.db.execute("DELETE FROM users WHERE id=?", (user_id,))
```
接下来是视图(View)的代码:
```python
class UserView:
def __init__(self):
self.controller = UserController()
def create_user(self):
# 获取用户输入的用户名和密码
username = input("请输入用户名:")
password = input("请输入密码:")
# 调用控制器的方法创建用户
self.controller.create_user(username, password)
def read_user(self):
# 获取用户输入的用户ID
user_id = input("请输入要查询的用户ID:")
# 调用控制器的方法读取用户信息
user = self.controller.read_user(user_id)
# 显示用户信息
print("用户信息:", user)
def update_user(self):
# 获取用户输入的用户ID、用户名和密码
user_id = input("请输入要修改的用户ID:")
username = input("请输入新的用户名:")
password = input("请输入新的密码:")
# 调用控制器的方法更新用户信息
self.controller.update_user(user_id, username, password)
def delete_user(self):
# 获取用户输入的用户ID
user_id = input("请输入要删除的用户ID:")
# 调用控制器的方法删除用户信息
self.controller.delete_user(user_id)
```
最后是控制器(Controller)的代码:
```python
class UserController:
def __init__(self):
self.model = UserModel(db)
def create_user(self, username, password):
# 调用模型的方法创建用户
self.model.create_user(username, password)
def read_user(self, user_id):
# 调用模型的方法读取用户信息
user = self.model.read_user(user_id)
return user
def update_user(self, user_id, username, password):
# 调用模型的方法更新用户信息
self.model.update_user(user_id, username, password)
def delete_user(self, user_id):
# 调用模型的方法删除用户信息
self.model.delete_user(user_id)
```
运行图如下所示:
![MVC_CRUD运行图](https://img-blog.csdnimg.cn/20210923190221367.png)