模型与flask-sqlalchemy的解耦

问题描述 投票:0回答:1

通常,我使用 ASP .Net Core 开发 Web 应用程序,但最近我必须使用 ORM 和 sqlalchemy 创建一个 python Flask 应用程序。首先,一切都进展顺利。当我尝试清理设计并解耦包以便在单元测试中进行测试时,麻烦就开始了。

我遇到了一个问题,模型类需要从

db.Model
派生,其中
db
已经是
SQLAlchemy
类的对象,并且也与 Flask 应用程序对象绑定。所以,这一切基本上都变成了一个大泥球。

class User(db.Model):
    pass

作为一名 C# 开发人员,我发现这非常奇怪。如何将数据模型与 Flask 和 sqlalchemy 解耦以进行独立测试?有没有例如一种以编程方式注册 SQLAlchemy 模型类的方法?

python flask sqlalchemy
1个回答
0
投票

我认为

python_user
的建议可能是你想要的东西的开始,但更具体地说是命令映射。这可以让您将表与类完全分开。

唯一的问题是,如果您想使用添加到声明式中的所有最新打字功能,那么这是行不通的。

话虽如此,在使用 sqlalchemy 一段时间之后,我也会避免将几乎任何逻辑放入数据库模型中。我只是用它们来描述数据成员和关系。然后将所有逻辑放入一些外部服务中。这通常会让我的测试变得更容易。

© www.soinside.com 2019 - 2024. All rights reserved.