【问题标题】:Data access object (DAO) in Python Flask SQLAlchemyPython Flask SQLAlchemy 中的数据访问对象(DAO)
【发布时间】:2021-12-09 03:14:54
【问题描述】:

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 模式”?

【问题讨论】:

    标签: python sqlalchemy flask-sqlalchemy dao data-access-object


    【解决方案1】:

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

    参考文献

    【讨论】:

      猜你喜欢
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 2014-12-25
      • 1970-01-01
      • 2020-02-17
      • 2012-06-29
      相关资源
      最近更新 更多