适用于 Google App Engine 的 Python Web 框架
(请注意,这个问题和一些回答都是旧的)
我想用一个现有的Python框架来开发一个在Google App Engine上的应用。
我希望这个框架能让开发过程快速简单,并且支持测试驱动开发,这样我可以更轻松地进行测试。
你能推荐一个技术栈吗?那Django怎么样?
补充信息:
有几个Django的移植版本,但Stack Overflow上的问题已经过时了。之前有几个Django和App Engine的解决方案,我不知道现在哪个是最流行的。(这个信息现在已经过时,请查看被接受的答案和其他答案)。
不过,其他框架也很有趣,不仅仅是Django。
还有一个听起来不错但不是必须的条件,就是希望这个框架和App Engine都能运行这个应用,之后可能还想在自己搭建的(无SQL)版本上运行这个框架(可能是Django,也可能是其他的东西)。
7 个回答
我个人很喜欢在App Engine上使用Flask这个模板:https://github.com/kamalgill/flask-appengine-template
这个模板里的代码组织得很好,里面还包含了很多不错的开发功能,比如性能分析和应用统计。
(注意,这个回答比较旧,可能不再适用。)
在阅读了Tom Willis对这个问题的评论,以及这个SO问题的被接受的回答后,我发现webapp/webapp2看起来很有前景。
- 谷歌对它有一定的支持。
- 不需要为现有的SDK处理程序创建和维护自己的版本。
- 有一些库是专门为App Engine设计的,基于webapp的,这些库需要移植或适配才能与其他框架一起使用。
- 它可以在App Engine之外使用。
- 单元测试的设置很简单,并且在这里有详细的文档。
更新:这个回答现在已经过时了。
对我来说,我选择的是djangoappengine。
它是一个专门为无关系数据库(比如Google App Engine和MongoDB)制作的django项目的分支。它的主要好处是,你可以享受到django项目中所有很酷的功能,同时又能在GAE的可扩展架构上运行。另一个好处是,使用djangoappengine的话,你可以比直接使用他们的API更容易地迁移出App Engine(虽然这可能说起来简单,做起来难)。
曾经有传言说Django会把这些改动合并到主Django项目中,但截至2014年5月,这还没有发生。
一些相关链接: