首页 > 解决方案 > 查询时的 SQLAlchemy 侦听器

问题描述

是否可以在 SQLAlchemy 中为数据库模型创建一个事件侦听器,该事件侦听器可以修改每次查询时查询的所有对象?

例如,如果我有模型:

class Users(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    password = db.Column(db.String, nullable=False)
    email = db.Column(db.String, unique=True, nullable=False)
    username = db.Column(db.String, unique=True, nullable=False)
    fname = db.Column(db.String, nullable=True)
    lname = db.Column(db.String, nullable=True)
    phone = db.Column(db.String, nullable=True)
    timestamp = db.Column(db.DateTime, default=datetime.utcnow)

    def __repr__(self):
        return "{}_{}".format(self.id, self.email)

我想消除任何超过一岁的用户,有没有一种方法可以在每次查询用户模型时运行一个函数,并且只针对被查询的用户?

标签: pythonflasksqlalchemy

解决方案


推荐阅读