gpt4 book ai didi

python - Python 中的 MVC 模型结构

转载 作者:行者123 更新时间:2023-11-28 20:00:21 24 4
gpt4 key购买 nike

我在 Python 应用程序的 MVC 模式的模型部分中构建类时遇到问题。不管我怎么转,我总是遇到循环导入。这是我拥有的:

模型/__init__p.y

  • 应该包含所有的模型类名我可以做一个“从模型导入用户”例如从 Controller 或单元测试用例

模型/数据库.py

  • 持有数据库类
  • 需要导入所有模型类来做ORM
  • 初始化应该在第一个模块导入时执行,即没有额外的初始化调用或实例化(数据库类上的所有方法都是@classmethods)

模型/用户.py

  • 包含用户模型类
  • 需要访问数据库类来进行查询
  • 应继承所有模型类共有的基类以共享功能(数据库持久化方法、参数验证代码等)

我还没有看到一个真实世界的 Python 应用程序使用 MVC,所以我的方法可能是非 Pythonic 的(并且可能是语言不可知的困惑......) - 关于如何解决这个问题有什么建议吗?

谢谢,西蒙

最佳答案

您的规范中存在不一致之处。你说 Database.py 需要导入所有模型类来做 ORM 但你说用户类需要访问数据库来做查询。

将这些视为 API 的层。 Database 类为某些物理持久层(例如 DB-API 2.0)提供 API(可能是面向对象的)。 Model 类,如 User,使用数据库层来加载和保存它们的状态。 Database.py 类没有理由导入所有 Model 类,事实上您不希望这样做,因为每次创建新的 Model 类时都必须修改 Database.py - 这是一种代码味道.

关于python - Python 中的 MVC 模型结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/185389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com