如何在sqlAlchemy中使用"Like"运算符

D.O*_*jha 3 sqlalchemy python-3.x flask-sqlalchemy

您好我是stackoverflow的新成员.我目前正在烧瓶中使用sqlAlchemy.尝试获取搜索网址提供的匹配类别的字符串.搜索网址的代码如下:

@productapi.route("/search/category", methods=["GET"])
def search_category():
    category_param_value = request.args.get('querystr', None)
    print(category_param_value)
    if category_param_value is None:
        return jsonify(message='Which category you want to search????'), 400
    try:
        category = Category.query.filter_by(
            title=Category.title.like("category_param_value %"))
    except SQLAlchemyError as err:
        return jsonify(message='Category not found.'), 400
    category_list = category_schema.dumps(category)
    return category_list.data, 200
Run Code Online (Sandbox Code Playgroud)

我尝试使用httpie跟随以下网址:http得到http://192.168.1.98:5000/api/v1/search/category?querystr="test "

错误:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) operator does not exist: character varying = boolean
Run Code Online (Sandbox Code Playgroud)

希望得到积极的回应.谢谢.

Tem*_*pux 11

您没有使用正确的语法.您还应格式化要传递的字符串like.

改变这一行:

category = Category.query.filter_by(title=Category.title.like("category_param_value %"))
Run Code Online (Sandbox Code Playgroud)

对此:

category = Category.query.filter(Category.title.like(category_param_value + "%")).all()
Run Code Online (Sandbox Code Playgroud)