python - 持久性 where 子句 SQLAlchemy

标签 python mysql sqlalchemy

我正在尝试在 SQLalchimy 中添加一个持久性 SQL where 子句。 基本上我有一个包含特定字段的表,我希望我的所有请求都添加一个 where 子句,所以这个字段匹配一个子句。

例如,如果我的要求是

session.query( MyTable ).all()

我希望生成的请求是这样的:

SELECT * FROM Table WHERE specific_field = 'some_value';

有没有一种方法可以在不为每个请求添加过滤器的情况下执行此操作?

提前致谢。

最佳答案

如果你添加:

dbengine.echo = True
session.query(MyTable).filter_by(specified_field = 'some_value').all()

我不确定您所说的“不为每个请求添加过滤器”是什么意思。我的猜测是您不想在客户端过滤请求。为此生成的 SQL 应该看起来很像您所要求的; dbengine.echo = True 位将显示生成的 SQL。

根据 OP 评论更新:

如果你真的希望所有的查询都有一个过滤器,那么一个简单的(但在我看来不太好)的方法是添加你自己的查询方法:

def myquery(self, table):
  self.query(table).filter_by(specified_field = 'some_value')

session.__class__.some_arbitrarily_filtered_query = myquery

之后,您可以调用(例如):

session.some_arbitrarily_filtered_query(MyTable).all()

关于python - 持久性 where 子句 SQLAlchemy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5433921/

相关文章:

mysql - 如何在 MySQL 查询中对两个或多个 COUNT 值求和?

php - Laravel Eloquent 选择具有 maxcreated_at 的所有行

python - SQLAlchemy 附加到关系时出现异常非空失败

python - 当多个已更改时,仅提交一个 SQLAlchemy 模型实例的更改

python - 如何使用触摸屏为 tkinter 中的函数调用选择特定的条目小部件?

python - 是否可以查找某个数字下的字典值的键?

python - GTK 3 中的行删除按钮

python - 如何从多维数组中删除值之和等于0的元素?

java - JDBC 使用 MySQL 选择批处理/获取大小

python - Flask/SQLAlchemy 插入数据库