时GQL简单易学的人谁知道SQL?如何为Django的/ Python的?难道App Engine的真正使缩放容易吗?有没有针对“GQL注射液”任何内置的保护?等等...

我很想听听使用应用程序引擎的不那么明显的起伏。

干杯!

有帮助吗?

解决方案

最明显的和令人沮丧的问题是数据存储API,它看起来不错,是非常深思熟虑和易于使用,如果你正在使用SQL,但在所有查询结果集一个1000行限制的工作,你可以”牛逼访问计数或偏移超出。我碰到的怪异的问题,有没有真正能够为模型添加或访问数据,一旦超越了1000行。

请参阅有关1000行限制堆栈溢出讨论>

咸海巴尔干写的这个问题和其他问题的一个很好的总结

说了这么多,应用程序引擎是一个真正伟大的工具,必须在那些处理,我真的很享受与它的工作。这是完美的微部署Web服务(例如:JSON API的)。在其他应用程序使用

其他提示

GQL是非常简单 - 它是SQL的一个子集“SELECT”语句,仅此而已。这是仅在较低级别的API的顶部的方便层,然而,所有的语法分析在Python进行。

相反,我建议使用查询API,这是程序性的,不要求运行时解析,并使得“GQL注射”漏洞完全不可能(尽管它们在正确写入GQL不可能反正)。查询API很简单:调用。所有()模型类,或致电db.Query(MODELNAME)。查询对象有.filter(field_and_operator,值),.order(field_and_direction)和.ancestor(实体)的方法,除了所有的设施GQL对象有(获得(),.fetch().Count之间的())等)中的每一个查询方法返回查询对象本身为方便起见,这样就可以把它们连:

  

结果= MyModel.all()过滤器( “富=”,5).order( “ - 巴”)。取(10)

等同于:

  

结果= MyModel.gql( “WHERE富= 5 ORDER BY巴DESC LIMIT 10”)。取()

起初我有过同样经历的人谁从SQL转换到GQL - 一种奇怪的不能够做到连接,数超过1000行,等等。现在,我已经用它工作了几年几个月里,我绝对喜欢的应用程序引擎。我移植我所有的旧项目置于其上。

我用它来举办一些高流量网络应用(在高峰时间其中之一得到50K打一分钟。)

谷歌App Engine不使用一个实际的数据库,显然使用某种分布式哈希地图。这将借给自己是谁习惯于SQL人就是不会看到在第一一些不同的行为。因此,例如获得在常规SQL的项目数有望成为一个快速的操作,但GQL它只是不会相同的方式工作。

下面是一些更多的问题:

http://blog.burnayev.com/2008/04/gql -limitations.html

在我个人的经验,这是一个调整,但学习曲线是好的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top