或在 flask_SQLAlchemy 查询
or query in flask_SQLAlchemy
我正在移植我使用 mysql 库查询 mysql 的旧代码。我很想使用 flask_SQLALchemy 来做同样的事情,但无法找到查询 'or'.
的替代选项
下面是有关其工作原理的更新代码片段。
from flask_sqlalchemy import SQLAlchemy
from myapp import APP
from myapp.models.nodes import Host
DB = SQLAlchemy(APP)
# config is taken care here
APP.app_context().push()
with APP.app_context():
DB.init_app(APP)
Hostname_var = "some hostname"
session_query = Host.query.filter_by(hostname=hostname_var).first()
同样,我想查询下面给出的语句。我可以使用 sqlalchemy,但使用不同的库听起来不太理想。
"Select count(*) as c from table_name where ver='some version' and arch='some arch' and pool=1 and (state='Ready' or state='Provisioning');"
table_name 的 class 称为主机(如示例中所用)。
感谢任何帮助,谢谢。
您需要使用|
和&
,例如:
Host.query.filter(
(Host.ver == 'some version') & (Host.arch == 'some arch') & (Host.pool == 1) &
((Host.state == 'Ready') | (Host.state == 'Provisioning'))
).count()
会给你想要的结果。
我正在移植我使用 mysql 库查询 mysql 的旧代码。我很想使用 flask_SQLALchemy 来做同样的事情,但无法找到查询 'or'.
的替代选项下面是有关其工作原理的更新代码片段。
from flask_sqlalchemy import SQLAlchemy
from myapp import APP
from myapp.models.nodes import Host
DB = SQLAlchemy(APP)
# config is taken care here
APP.app_context().push()
with APP.app_context():
DB.init_app(APP)
Hostname_var = "some hostname"
session_query = Host.query.filter_by(hostname=hostname_var).first()
同样,我想查询下面给出的语句。我可以使用 sqlalchemy,但使用不同的库听起来不太理想。
"Select count(*) as c from table_name where ver='some version' and arch='some arch' and pool=1 and (state='Ready' or state='Provisioning');"
table_name 的 class 称为主机(如示例中所用)。
感谢任何帮助,谢谢。
您需要使用|
和&
,例如:
Host.query.filter(
(Host.ver == 'some version') & (Host.arch == 'some arch') & (Host.pool == 1) &
((Host.state == 'Ready') | (Host.state == 'Provisioning'))
).count()
会给你想要的结果。