查询Google App Engine数据存储区

时间:2013-05-22 18:44:28

标签: python google-app-engine google-cloud-datastore gql gqlquery

我正在尝试学习如何使用Google App Engine,我正在查看他们的数据存储示例,用于查询here我从未做过SQL,GQL等。那么有人可以打破这个字符串并解释每个部分正在做什么吗?

# GqlQuery interface constructs a query using a GQL query string
q = db.GqlQuery("SELECT * FROM Person " +
                "WHERE last_name = :1 AND height <= :2 " +
                "ORDER BY height DESC",
                "Smith", max_height)

2 个答案:

答案 0 :(得分:2)

查询结果分配给&#34; q&#34;

db.GqlQuery是db类

中的gqlquery方法

&#34; SELECT * FROM Person&#34; +表示英文选择模型人物

中的所有内容

&#34; WHERE last_name =:1 AND height&lt; =:2&#34; + last_name是一个字段,并且:1是第一个变量 (与高度相同,并且:2秒变量)AND加入请求

&#34; ORDER BY height DESC&#34;,按字段高度降序排序

&#34; Smith&#34;,max_height)变量1和2

q = db.GqlQuery("SELECT * FROM Person " +
     "WHERE last_name = :1 AND height <= :2 " +
     "ORDER BY height DESC",
     "Smith", max_height)

答案 1 :(得分:0)

如前所述,如果您不是来自SQL背景(即使那时我认为这是一个错误),您应该考虑使用GQL。使用GQL对模型和Query对象没有任何实际好处,并且很多人根据关于appengine应该如何工作的SQL的先入为主的想法来到appengine表中,他们必须忘记这些想法。

使用

模型执行相同的查询
q = Person.all().filter("last_name = ","Smith").filter("height <= ",max_height).order("-height")

正如另一个人提到的那样,如果你刚刚开始,你应该认真考虑切换到ndb,除非你有一套预先存在的代码,你已经在使用{{1} }}