如何打印ACTUAL SQLAlchemy查询以解决问题:SQLAlchemy过滤器语句用%(column_name_1)s代替过滤器标准

时间:2018-07-23 15:48:01

标签: python sqlalchemy flask-sqlalchemy

我有一个如下所示的SQLAlchemy查询:

query = db.session.query(
    Place.name,
    Place.population,
).filter(Place.population==8000)

但是当我打印查询时,它显示为:

SELECT place.name AS place_name, place.population AS place_population
FROM place
WHERE place.population = %(population_1)s

我不知道为什么它总是用%(population_1)s替换我的过滤条件。该查询是Flask应用程序的一部分,也许有些地方我不了解?

编辑:更改标题以更加描述实际问题。

1 个答案:

答案 0 :(得分:1)

它的行为与应有的方式相同。就是您打印查询的方式。

from sqlalchemy.dialects import postgresql 
query = statement.compile(dialect=postgresql.dialect(),compile_kwargs={"literal_binds": True})
print(query) # will print the compiled query statement againt the dialect.