Подтвердить что ты не робот

Как строки передаются методу SQLAlchemy.like()

Я создаю интерфейс на Flask с использованием SQLAlchemy, а часть его - API поиска. По существу вход ввода типа требует вызова сервера с его значением (например, электронной почты), а затем сервер выполняет запрос SQLalchemy с использованием .like в фильтре, как показано ниже.

q = session.query(User).filter(User.email.like('%'+term+'%')).all()

Этот запрос не возвращает ничего полезного, и после первых нескольких символов ничего не происходит. Но если я выполняю тот же запрос с термином hardcoded, например:

q = session.query(User).filter(User.email.like('%mysearchterm%')).all()

Он отлично вернет результаты, поэтому есть что-то с тем, как я помещаю этот термин в метод like(), но я действительно не могу понять, в чем проблема. Термин приходит от ajax POST, и значение присутствует на стороне сервера, просто .like() не использует его правильно.

Под "ничего полезного" я ​​имею в виду, что первые наборы результатов, которые возвращаются, не имеют никакого отношения к введенному фактическому члену, после того, как срок больше 3-4, результаты не возвращаются, несмотря на сопоставление элементов, существующих в БД.

Любая помощь очень ценится.

4b9b3361

Ответ 1

Проблемы были решены. Этот запрос находился внутри большей функции построителя запросов, которая применяла ограничение и смещение к запросу позже в функции, поскольку предел и смещение были выше, чем количество результатов назад, когда возвращаемый набор результатов был пустым.

Может забить это до плохой человеческой ошибки и отсутствия сна.