我正在尝试学习如何使用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)
答案 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} }}