我正在开发一个与简单的 sqlite 数据库交互的 Python 程序。我正在尝试构建一个搜索工具,该工具能够根据用户输入交互地“过滤”数据库,然后返回与搜索匹配的行(项目)。例如...
我的 Python 程序(通过 if 语句、cgi.FieldStorage() 等)应该能够接受用户输入,然后搜索数据库。这是该程序的通用代码:
import cgitb; cgitb.enable()
import cgi
import sys
import sqlite3 as lite
import sys
con = lite.connect('bikes.db')
form = cgi.FieldStorage()
terrain_get = form.getlist("terrain")
terrains = ",".join(terrain_get)
handlebar_get = form.getlist("handlebar")
handlebars = ",".join(handlebar_get)
kickstand = form['kickstand'].value
如您所见,该部分是接收用户输入的部分;工作正常(我认为)。接下来,我需要帮助的地方:
if 'dirtrocky' not in terrains:
FILTER the database to not return items that have "dirtrocky' in their terrain field
然后在程序的后期,我希望能够扩展我的过滤器:
if 'drop' not in handlebars:
FILTER the database to, much like in previous one, not return items that have 'drop' in their 'handlebar' field
我的问题是,如何过滤数据库?理想情况下,我的最终结果应该是在我“过滤掉”上述内容后留下的行的 ID 元组。
谢谢!