How to use “Like” operator in sqlAlchemy [duplicate]

三世轮回 提交于 2019-12-23 17:25:32

问题


Hi I am a new member in stackoverflow. I am currently using sqlAlchemy in flask. Trying to get the matched categories of string provided with the search url. The code of search url is given below:

@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

I tried with httpie with following url: http get http://192.168.1.98:5000/api/v1/search/category?querystr="test"

Error:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) operator does not exist: character varying = boolean

Hoping for a positive response. Thank You.


回答1:


You are not using the correct syntax. Also you should format the string you are passing to like.

Change this line:

category = Category.query.filter_by(title=Category.title.like("category_param_value %"))

to this:

category = Category.query.filter(Category.title.like(category_param_value + "%")).all()


来源:https://stackoverflow.com/questions/39384923/how-to-use-like-operator-in-sqlalchemy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!