我对动态提供的列和相应值进行了过滤查询。
from flask import request
filter_dict = {}
page = request.args.get('index', 1, type=int)
no_of_item = request.args.get('max', 10, type=int)
if request.args.get('first_name', type=int):
filter_dict['first_name'] = request.args.get('first_name', type=str)
if request.args.get('city', type=int):
filter_dict['city'] = request.args.get('city', type=str)
# Query
list_user_obj = User.query.filter_by(**filter_dict).paginate(page=page, per_page=no_of_item)
现在,我想查询所有以'jh'开头的城市和以'NY'为城市的名字。如何以更有效的方式构建查询?无论如何说filter_dict
过滤first_name
时只寻找以'jh'模式开头的代码。
from flask import request
filter_list= []
page = request.args.get('index', 1, type=int)
no_of_item = request.args.get('max', 10, type=int)
if request.args.get('first_name', type=int):
filter_list.append(User.first_name.startswith(request.args.get('first_name', type=str))
if request.args.get('city', type=int):
filter_list.append(User.city == request.args.get('city', type=str))
# Query
list_user_obj = User.query.filter(*filter_list).paginate(page=page, per_page=no_of_item)