0

Python (Flask) SQL Alchemy 是同时使用 DAO 和 ORM 设计,还是仅仅使用 ORM?我正在学习设计策略,我想到了 SQLAlchemy。它是否也被视为 DAO(显然是 ORM)?

默认情况下,它看起来不像 DAO。

如果我为现有模型类定义了一个类,例如,假设我有以下类:

class User(db.model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(120), unique=True, nullable=False)
    verified= db.Column(db.String(5), unique=False, nullable=False)

我定义了另一个类,UserDao

class UserDao:
    def addNewUser(user):
         pass
    def retrieveAllUsers(user):
         users = User.query.limit(5).all()

我实例化这个 UserDao 类的对象并调用各自的方法通过各自的方法进行一些数据库操作,这是否使它成为“DAO 模式”?

4

1 回答 1

0

Sqlalchemy 实现存储库模式,而不是 dao 模式。
使用 sqlalchemy 时,您不必在代码中实现任何 dao 类。
使用 sqlalchemy orm session(或基于 的类db.model)意味着您正在使用存储库。

参考

于 2021-11-19T10:09:56.917 回答