我要将我的旧代码移植到使用mysql库查询mysql的地方。我打算使用flask_SQLALchemy进行相同的操作,但是无法找到替代选项来查询“或”。
下面是更新代码的片段,有关其工作方式的信息。
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的类称为Host(在示例中使用)。
感谢您的帮助。
答案 0 :(得分:0)
您需要使用|
和&
,例如:
Host.query.filter(
(Host.ver == 'some version') & (Host.arch == 'some arch') & (Host.pool == 1) &
((Host.state == 'Ready') | (Host.state == 'Provisioning'))
).count()
会给您想要的结果。