繁体   English   中英

使用torndb搜索文本的python

[英]python using torndb to search text

我想当用户搜索“丢失的计算机”时,所有使用单词“丢失的”和“计算机”的记录将通过使用torndb python显示,我知道仅使用SQL语句AND运算符就很容易,但是进行动态查询将很容易由于SQL注入很危险,例如我在下面查询

def RedownloadListSelect(self, searchtext):
    searchtext = "%" + searchtext + "%"
    return self.db.query("SELECT * FROM RedownloadList WHERE column like %s", searchtext)

但以上仅能搜索整个单词,这意味着如果用户使用文本“丢失的计算机”进行搜索,则不会找到“丢失的1台计算机”或“丢失的2台计算机”。 如果我使用空格分割searchtext并使用AND对其进行串联,则我认为它允许SQL注入,因此我决定使用参数坚持使用torndb功能。

任何人都知道如何使用不暴露SQL注入威胁的单个searchtext使用多个AND运算符进行搜索? 谢谢

您可以这样操作:

searchtext='lost computer'
searchwords = searchtext.split()
query = "SELECT * FROM RedownloadList WHERE" + " AND ".join(["column like %s"]*len(searchwords))
self.db.query(query, searchwords)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM