【flask_sqlalchemy】模糊查询
flask_sqlalchemy的查询方法有filter()和filter_()
这2个方法的主要区别如下:
模块 | 语法 | ><(大于和小于)查询 | and_和or_查询 |
---|---|---|---|
filter_by() | 直接用属性名,比较用= | 不支持 | 不支持 |
filter() | 用类名.属性名,比较用== | 支持 | 支持 |
若要进行模糊查询,需要使用filter()方法
查询方式:
objs = db_model.query.filter(db_model.api_url.like('%{keyword}%'.format(keyword=keyword))).all()
写成函数:
def update_like(self,keyword):
'''模糊查询'''
objs = self.db_model.query.filter(self.db_model.api_url.like('%{keyword}%'.format(keyword=keyword))).all()
obj_num = len(objs)
for obj in objs:
if obj.unusual=='True':
obj_num=obj_num-1
else:
obj.unusual='True'
db.session.commit()
return '%d条记录被更新'%obj_num
filter()方法支持 like,in ,not in ,and or查询方式
具体使用方法:
参考文档:
SQLAlchemy中filter_by()和filter()的用法区别