【发布时间】:2021-03-17 21:58:16
【问题描述】:
我正在尝试使用 LIKE 函数创建搜索功能,以根据作者/标题或在表单中输入的类型(我正在使用 sqlite)输出所有可用的书籍。
我使用的一段代码如下:
# User reached route via POST (submitting the form)
else:
query = request.form.get("query")
# Ensure query is not blank
if not query:
return apology("you haven't typed anything!", 400)
# Implementing search
books = db.execute("SELECT author, title, genre, id FROM books WHERE booked = 0 AND (author LIKE '%' || :query || '%' OR title LIKE '%' || :query || '%' OR genre LIKE '%' || :query || '%')",
query = query)
但是,用户通常会键入 query 后跟一个空格(尤其是在移动设备上)。在这种情况下,代码不起作用。
- 如何解决查询后有空格的情况并解决此问题?
- 是否可以考虑无限数量的空间?例如。如果我在后面打印 2 个空格?
谢谢!
【问题讨论】:
-
使用 strip():
query = request.form.get("query").strip()删除任何前导或尾随空格。