关于使用谷歌应用引擎的反馈?

2024-04-20 13:54:44 发布

您现在位置:Python中文网/ 问答频道 /正文

想做一个非常小,快速,肮脏的边上项目。我喜欢Google应用引擎运行在Python上,内置了Django——这给了我一个尝试这个平台的借口。。。但我的问题是:

除了玩具问题,有没有人使用过应用程序引擎?我看到了一些很好的示例应用程序,所以我认为这对于真正的交易来说已经足够了,但是我想得到一些反馈。

任何其他的成功/失败记录都是很好的。


Tags: 项目django引擎应用程序示例google记录交易
3条回答

我发现使用Google App Engine的一个令人信服的原因是它与你的领域的Google Apps集成。实际上,它允许您创建自定义的、受管理的web应用程序,这些应用程序仅限于您的域的(受控制的)登录。

我对这段代码的大部分经验是构建一个简单的时间/任务跟踪应用程序。模板引擎很简单,但使多页应用程序非常容易实现。登录/用户感知api也同样有用。我能够在没有太多问题的情况下创建一个公共页面/私有页面范例。(用户将登录以查看专用页。匿名用户只显示在公共页上。)

我刚进入项目的数据存储部分,就因为“真正的工作”而被拉了出来。

我能在很短的时间内完成很多事情(还没有完成)。因为我以前从未使用过Python,所以这非常令人愉快(这既是因为它对我来说是一种新语言,也是因为尽管使用了新语言,开发仍然很快)。我几乎没有遇到什么让我相信我不能完成我的任务。相反,我对功能和特性有着相当积极的印象。

这是我的经验。也许它不仅仅代表一个未完成的玩具项目,但它确实代表了一个平台的知情试用,我希望这能有所帮助。

我已经为我的小震表应用程序尝试了app engine http://quakewatch.appspot.com/

我的目的是了解app engine的功能,所以这里有几个要点:

  1. 它不是默认的Django,它有自己的web框架,pythonic有类似Django的URL调度器,它使用Django模板 所以如果你有Django exp.你会发现它很容易使用
  2. 您不能在服务器上执行任何长时间运行的进程,您要做的是回复请求,而且应该很快,否则appengine会终止它 所以如果你的应用需要大量的后台处理appengine不是最好的方法 否则,您将不得不在自己的服务器上进行处理
  3. 我的quakewatch应用程序有订阅功能,这意味着我必须在最新地震发生时发送电子邮件,但我无法在应用程序引擎中运行后台进程来监视新地震 这里的解决方案是使用第三方服务,比如pingablity.com,它可以连接到您的一个页面并执行订阅电子邮件程序 但在这里你也要注意不要在这里花太多时间 或者把任务分成几部分
  4. 它提供了类似Django的建模功能,但后端完全不同,但对于一个新项目来说,这不重要。

但总的来说,我认为它非常适合创建不需要大量后台处理的应用程序。

编辑: 现在task queues可以用于运行批处理或计划任务

编辑: 在GAE上工作/创建一个真正的应用程序已经一年了,现在我的建议是,除非你正在开发一个需要扩展到百万用户的应用程序,否则不要使用GAE。在GAE中维护和执行琐碎的任务是一个令人头疼的问题,因为它是分布式的,为了避免超过期限的错误,计算实体或执行复杂的查询需要复杂的代码,所以小型复杂的应用程序应该坚持LAMP。

编辑: 模型应该特别设计,考虑到您将来希望拥有的所有事务,因为只有在同一个实体组中的实体才能在事务中使用,并且它使更新两个不同组的过程成为一场噩梦,例如,在事务中从user1向user2转账是不可能的,除非它们在同一个实体组中,但是使它们成为相同的实体组对于频繁的更新来说可能不是最好的。。。。 读这个http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engine

我正在使用GAE托管几个高流量应用程序。如50-100要求/秒。太好了,我推荐得还不够。

我以前的web开发经验是使用Ruby(Rails/Merb)。学习Python很容易。我没有搞乱Django、Pylons或任何其他框架,只是从GAE示例开始,从提供的基本webapp库中构建我需要的东西。

如果您习惯了SQL的灵活性,那么数据存储可能需要一些时间来适应。没有太大的创伤!最大的调整是远离连接。你必须摆脱正常化至关重要的观念。

相关问题 更多 >