Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use "Like" operator in sqlAlchemy [duplicate]

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.

like image 486
D.Ojha Avatar asked Sep 08 '16 07:09

D.Ojha


1 Answers

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()
like image 98
Saeid Avatar answered Oct 21 '22 22:10

Saeid