我正在使用SQLAlchemy在Flask上构建一个接口,其中一部分是搜索API。本质上,提前输入是使用其值(例如电子邮件)调用服务器,然后服务器在下面的过滤器中使用.like执行SQLalchemy查询
q = session.query(User).filter(User.email.like('%'+term+'%')).all()
这个查询并没有真正返回任何有用的东西,在前几个字符之后,什么都没有。但是,如果我使用术语硬编码执行相同的查询,如下所示:
q = session.query(User).filter(User.email.like('%mysearchterm%')).all()
它会很好地返回结果,所以我会把这个术语放到like()方法中,但我真的无法弄清楚问题是什么。该术语来自ajax POST,值在服务器端,只是.like()没有正确使用它。
“没什么用处”我的意思是回来的第一组结果与输入的实际条款无关,在长度超过3-4的条款之后,尽管存在匹配的项目,但没有返回结果DB。
非常感谢任何帮助。
答案 0 :(得分:7)
问题已经解决。此查询位于较大的查询构建器函数内部,该函数稍后在函数中对查询应用限制和偏移量,因为限制和偏移量高于返回结果集为空的结果量。
可以将这个问题归咎于人为错误和睡眠不足。