当前位置: 首页 > news >正文

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!

http://www.xdnf.cn/news/114175.html

相关文章:

  • 决策树在金融分析中有诸多应用场景
  • C语言——函数
  • 32BIT的SPI主机控制
  • 架构-系统工程与信息系统基础
  • 【Spring Boot】深入解析:#{} 和 ${}
  • java Springboot使用扣子Coze实现实时音频对话智能客服
  • 低空AI系统的合规化与标准化演进路径
  • 考研英一学习笔记
  • 数据结构——二叉树,堆
  • 【农气项目】基于适宜度的产量预报
  • Unity性能优化实战:用Profiler揪出卡顿元凶 (CPU/GPU/内存/GC全面解析) (Day 37)
  • http协议、全站https
  • 特征存储的好处:特征存储在机器学习开发中的优势
  • 【Linux】基于阻塞队列的生产消费者模型
  • 水上与水下遥控技术要点对比
  • 利用软件I2C驱动OLED,点亮、熄灭OLED屏幕以及获取当前OLED屏幕开启状态
  • 水域陆地两相宜,便携漏电探测仪
  • 【数据分析】酵母实验多指标数据的 R 语言分析与可视化
  • YOLOv11改进-双Backbone架构:利用双backbone提高yolo11目标检测的精度
  • 26考研 | 王道 | 数据结构 | 第七章 查找
  • SpringBoot | 构建客户树及其关联关系的设计思路和实践Demo
  • WHAT - 区分 Git PR 和 MR
  • UML 活动图详解:以机票预订系统用户注册为例
  • 【蓝桥杯】水质检测
  • 5.第五章:数据分类的方法论
  • 30天通过软考高项-第二天
  • IDEA导入并启动若依项目步骤(SpringBoot+Vue3)
  • 从节点重排看React 与 Vue3 的 Diff 算法
  • OpenBMC:BmcWeb login认证
  • C#中用 OxyPlot 在 WinForms 实现波形图可视化(附源码教程)