Trae+DeepSeek学习Python开发MVC框架程序笔记(一):1个程序实现MVC

Trae,字节跳动发布的AI原生编程工具,借助它与DeepSeek一同实现使用python开发一个MVC的软件。

首先向DS发问:请用python实现一个mvc框架的例子,用户在系统登录view页面,输入用户名和密码,点登录时,由controller处理,使用用户表user对应的model执行相应查询表user,查询有结果时,用户看到登录成功页面,查询没有结果时,用户看到登录失败提醒页面。请给出完整可运行的符合mvc框架和以上需求的完整代码。

DS答复:

Python MVC 框架示例 - 用户登录系统

下面是一个完整的基于Python的MVC框架示例,实现了用户登录功能:

python 复制代码
# 模型 (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) - 处理用户界面
class LoginView:
    def show_login_page(self):
        """显示登录页面"""
        print("\n=== 登录页面 ===")
        username = input("用户名: ")
        password = input("密码: ")
        return username, password
    
    def show_success(self, username):
        """显示登录成功页面"""
        print(f"\n=== 登录成功 ===\n欢迎回来, {username}!")
    
    def show_failure(self):
        """显示登录失败页面"""
        print("\n=== 登录失败 ===\n用户名或密码错误,请重试!")


# 控制器 (Controller) - 处理用户输入和业务逻辑
class LoginController:
    def __init__(self, model, view):
        self.model = model
        self.view = view
    
    def run(self):
        """运行登录流程"""
        while True:
            # 获取用户输入
            username, password = self.view.show_login_page()
            
            # 验证凭据
            if self.model.authenticate(username, password):
                self.view.show_success(username)
                break
            else:
                self.view.show_failure()


# 应用入口
if __name__ == "__main__":
    # 初始化MVC组件
    model = UserModel()
    view = LoginView()
    controller = LoginController(model, view)
    
    # 启动应用
    controller.run()

代码说明

这个示例完整实现了MVC架构:

  1. ‌**Model (UserModel)**‌:

    • 负责数据访问和业务逻辑
    • 包含用户认证方法
    • 模拟了一个简单的用户数据库
  2. ‌**View (LoginView)**‌:

    • 负责用户界面展示
    • 包含登录页面、成功页面和失败页面的显示方法
    • 收集用户输入并传递给控制器
  3. ‌**Controller (LoginController)**‌:

    • 协调模型和视图
    • 处理用户输入
    • 调用模型进行验证
    • 根据结果决定显示哪个视图

运行示例

  1. 将代码保存为mvc_login.py
  2. 运行程序: python mvc_login.py
  3. 尝试以下测试用例:
    • 正确用户: admin/123456
    • 错误密码: admin/wrongpassword
    • 不存在的用户: test/test

扩展建议

这是一个基础示例,你可以进一步扩展:

  • 添加数据库连接替代内存存储
  • 实现密码加密
  • 添加注册功能
  • 使用Web框架(如Flask)实现Web版
  • 添加会话管理

这个示例展示了MVC的核心概念,你可以根据需要调整和扩展它。

在TRAE中新建文件夹mvctest2

在此目录下新建test2.py,代码复制以上代码,直接运行,结果如下:

python 复制代码
=== 登录页面 ===
用户名: admin
密码: admin

=== 登录失败 ===
用户名或密码错误,请重试!

=== 登录页面 ===
用户名: admin
密码: 123456

=== 登录成功 ===
欢迎回来, admin!
相关推荐
袁小皮皮不皮2 小时前
1.HCIP BFD 学习笔记(优化版)
服务器·网络·笔记·网络协议·学习·智能路由器·ip
装不满的克莱因瓶2 小时前
【自动驾驶领域】学习 Cityscapes 数据集——城市街景语义理解的标准基准
人工智能·pytorch·python·深度学习·学习·机器学习·自动驾驶
清辞8533 小时前
产品经理需求推进流程
大数据·深度学习·学习·产品经理
YM52e4 小时前
鸿蒙PC ArkTS 声明合并问题深度解析与最佳实践
学习·华为·harmonyos·鸿蒙·鸿蒙系统
海兰5 小时前
【实用程序】电商销售分析仪表盘 — 从零搭建一个AI参与的全栈数据洞察系统
人工智能·学习·算法
ken22325 小时前
在 Libreoffice Calc中输入自定义表情字符时,需要保存之后,才能正常显示
学习
zwenqiyu5 小时前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法
编程圈子5 小时前
电机驱动开发学习2. 直流无刷电机工作原理
驱动开发·学习
MartinYeung56 小时前
[论文学习]大型语言模型(LLM)安全与隐私-基于善、恶、丑的深度分析
学习·安全·语言模型
什仙6 小时前
Mathcad Prime 的教程资料
学习·工具