Trae+DeepSeek学习Python开发MVC框架程序笔记(二):使用4个文件实现MVC框架
修改上节文件,将test2.py拆分为4个文件,目录结构如下:
mvctest/
│── model.py # 数据模型
│── view.py # 视图界面
│── controller.py # 控制器
│── main.py # 程序入口
其中model.py代码如下:
# 模型 (Model) - 处理数据和业务逻辑
class UserModel:def __init__(self):# 模拟数据库中的用户表self.users = {'admin': '123456','user1': 'password1','user2': 'password2'}def authenticate(self, username, password):"""验证用户凭据"""return username in self.users and self.users[username] == password
view.py代码如下:
# 视图 (View) - 处理用户界面
class LoginView:def show_login_page(self):"""显示登录页面"""print("\n=== 登录页面 ===")username = input("用户名: ")password = input("密码: ")return username, passworddef show_success(self, username):"""显示登录成功页面"""print(f"\n=== 登录成功 ===\n欢迎回来, {username}!")def show_failure(self):"""显示登录失败页面"""print("\n=== 登录失败 ===\n用户名或密码错误,请重试!")
controller.py 代码如下:
# 控制器 (Controller) - 处理用户输入和业务逻辑
class LoginController:def __init__(self, model, view):self.model = modelself.view = viewdef run(self):"""运行登录流程"""while True:# 获取用户输入username, password = self.view.show_login_page()# 验证凭据if self.model.authenticate(username, password):self.view.show_success(username)breakelse:self.view.show_failure()
程序入口main.py代码如下:
from model import UserModel
from view import LoginView
from controller import LoginController# 应用入口
if __name__ == "__main__":# 初始化MVC组件model = UserModel()view = LoginView()controller = LoginController(model, view)# 启动应用controller.run()
运行程序时
python.exe main.py
结果输出为:
== 登录页面 ===
用户名: admin
密码: admin=== 登录失败 ===
用户名或密码错误,请重试!=== 登录页面 ===
用户名: admin
密码: 123456=== 登录成功 ===
欢迎回来, admin!