使用 Web.py 搜索字符串

Searching for a string with Web.py

我正在尝试使用 web.py 和 SQLite 构建一个 python 函数,该函数将允许用户在描述字段中搜索给定的字符串并将 return 所有匹配结果.

现在我已经得到了下面的函数,它可以工作,但前提是输入完全匹配。

def getItem(params, max_display):
    query_string = 'SELECT * FROM items WHERE 1=1'
    description = params['description']

    if params['description']:
        query_string = query_string + ' AND description LIKE $description'
result = query(query_string, {
    'description': params['description']

我尝试使用 LIKE "%$description%"' 实现此功能,但我一直收到以下 web.py 错误。

Traceback (most recent call last):
  File "lib/web/wsgiserver/__init__.py", line 1245, in communicate
    req.respond()
  File "lib/web/wsgiserver/__init__.py", line 775, in respond
    self.server.gateway(self).respond()
  File "lib/web/wsgiserver/__init__.py", line 2018, in respond
    response = self.req.server.wsgi_app(self.env, self.start_response)
  File "lib/web/httpserver.py", line 306, in __call__
    return self.app(environ, xstart_response)
  File "lib/web/httpserver.py", line 274, in __call__
    return self.app(environ, start_response)
  File "lib/web/application.py", line 279, in wsgi
    result = self.handle_with_processors()
  File "lib/web/application.py", line 249, in handle_with_processors
    return process(self.processors)
  File "lib/web/application.py", line 246, in process
    raise self.internalerror()
  File "lib/web/application.py", line 478, in internalerror
    return debugerror.debugerror()
  File "lib/web/debugerror.py", line 305, in debugerror
    return web._InternalError(djangoerror())
  File "lib/web/debugerror.py", line 290, in djangoerror
    djangoerror_r = Template(djangoerror_t, filename=__file__, filter=websafe)
  File "lib/web/template.py", line 846, in __init__
    code = self.compile_template(text, filename)
  File "lib/web/template.py", line 926, in compile_template
    ast = compiler.parse(code)
  File "/Users/sokeefe/homebrew/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/compiler/transformer.py", line 51, in parse
    return Transformer().parsesuite(buf)
  File "/Users/sokeefe/homebrew/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/compiler/transformer.py", line 128, in parsesuite
    return self.transform(parser.suite(text))
AttributeError: 'module' object has no attribute 'suite'

有没有想过这个函数可能出了什么问题?

提前致谢!

What do you think is going on with parser.py?

以下是错误消息的相关部分:

File "/Users/sokeefe/homebrew/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/compiler/transformer.py", line 128, in parsesuite return self.transform(parser.suite(text)) AttributeError: 'module' object has no attribute 'suite'

所以,某个地方有一个名为 parser.py 的文件,它定义了一个名为 suite() 的函数,它被一些库代码使用,在你的程序执行时执行。但是因为您将其中一个文件命名为 parser.py,当库代码执行时,python 搜索名为 parser.py 的文件,并且 python 首先找到了您的文件,并且有您的文件中没有名为 suite() 的函数。