【问题标题】:How do I use web2py smart_query for a GET request?如何将 web2py smart_query 用于 GET 请求?
【发布时间】:2017-07-06 19:56:48
【问题描述】:

所以我试图在 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

我认为第一个值是我正在搜索的数据库,但我不知道第二个值是什么。这本书听起来应该是我正在搜索的字符串,但我认为这就是变量搜索的目的。

有人可以帮我理解每个参数到底应该做什么吗?

【问题讨论】:

    标签: python rest get web2py web2py-modules


    【解决方案1】:

    smart_query 的第一个参数是 DAL Table 和/或 Field 对象的列表(列表中的 Table 对象将简单地扩展为包含表的所有字段)。这个列表决定了哪些字段可以包含在查询中。

    第二个参数是查询本身,它可以包括字段名称和比较运算符(以及它们的自然语言对应物)以及“and”和“or”来表达连接和析取。有关允许的内容,您可以查看相关代码 here

    SQLFORM.grid 高级搜索小部件生成最终由 smart_query 解析的查询,因此为了更好地了解如何生成此类查询,请尝试创建一个测试 SQLFORM.grid 并在 UI 中使用搜索小部件查看它生成的查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-04
      相关资源
      最近更新 更多