如何使用 web2py smart_query 进行 GET 请求?
How do I use web2py smart_query for a GET request?
所以我试图在 web2py 中使用 smart_query 来查找数据库中的特定值,但我能找到的唯一解释是在 web2py 书中,而且不是很清楚。书中的示例 GET 请求格式如下:
def GET(search):
try:
rows = db.smart_query([db.person, db.pet], search).select()
return dict(result=rows)
except:
...
我不知道用什么值代替 db.person 和 db.pet。这是书上的内容:
The method db.smart_query takes two arguments:
a list of field or table that should be allowed in the query
a string containing the query expressed in natural language
我认为第一个值是我正在搜索的数据库,但我不知道第二个值是什么。这本书听起来应该是我正在搜索的字符串,但我认为这就是变量搜索的目的。
有人可以帮我理解每个参数到底应该做什么吗?
smart_query
的第一个参数是 DAL Table
and/or Field
对象的列表(列表中的 Table
对象将被简单地展开包括 table 的所有字段)。此列表确定哪些字段可以包含在查询中。
第二个参数是查询本身,它可以包括字段名称和比较运算符(及其自然语言对应项)以及 "and" 和 "or" 来表达连接和分离。要了解允许的内容,您可以查看相关代码 here.
SQLFORM.grid
高级搜索小部件生成最终由 smart_query
解析的查询,因此要更好地了解如何生成此类查询,请尝试创建测试 SQLFORM.grid
并使用 UI 中的搜索小部件查看它生成的查询。
所以我试图在 web2py 中使用 smart_query 来查找数据库中的特定值,但我能找到的唯一解释是在 web2py 书中,而且不是很清楚。书中的示例 GET 请求格式如下:
def GET(search):
try:
rows = db.smart_query([db.person, db.pet], search).select()
return dict(result=rows)
except:
...
我不知道用什么值代替 db.person 和 db.pet。这是书上的内容:
The method db.smart_query takes two arguments:
a list of field or table that should be allowed in the query
a string containing the query expressed in natural language
我认为第一个值是我正在搜索的数据库,但我不知道第二个值是什么。这本书听起来应该是我正在搜索的字符串,但我认为这就是变量搜索的目的。
有人可以帮我理解每个参数到底应该做什么吗?
smart_query
的第一个参数是 DAL Table
and/or Field
对象的列表(列表中的 Table
对象将被简单地展开包括 table 的所有字段)。此列表确定哪些字段可以包含在查询中。
第二个参数是查询本身,它可以包括字段名称和比较运算符(及其自然语言对应项)以及 "and" 和 "or" 来表达连接和分离。要了解允许的内容,您可以查看相关代码 here.
SQLFORM.grid
高级搜索小部件生成最终由 smart_query
解析的查询,因此要更好地了解如何生成此类查询,请尝试创建测试 SQLFORM.grid
并使用 UI 中的搜索小部件查看它生成的查询。