【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()的用法区别

 

posted @ 2019-10-28 13:43  wangju003  阅读(8010)  评论(0编辑  收藏  举报