【问题标题】:A python web framework for google app engine谷歌应用引擎的python web框架
【发布时间】:2011-11-29 03:15:26
【问题描述】:

(请注意,这个问题和一些答案是旧的)


我想使用现有的 python 框架在 google appengine 上开发应用程序。

应该可以快速轻松地开始并以简单的方式支持测试驱动的开发实践。

你能推荐一个堆栈吗? django 呢?


附加信息:

有几个 django 端口,但 stackoverflow 问题已经很老了。 django/appengine 解决方案有好几种,不知道目前哪个领先。 (这现在已经过时了,请参阅接受的答案以及其他答案)。

但其他框架也很有趣,不仅仅是 django。

听起来不错但不是一个条件是可以在框架和 appengine 上运行应用程序,然后可能在此框架的自托管 (noSql-) 版本上运行它(可能是 django,或也许还有别的)。

【问题讨论】:

  • 没有不能测试驱动的框架。此外,大多数框架比 appengine 更“最新”(目前是 python2.5,但据说 2.7 即将推出)。没有人可以预测未来,但使用 appengine api 和 webapp 将是一个安全的选择,因为谷歌有一定程度的承诺要让它存在一段时间。其他一切只是人们把最喜欢的框架扔在那里并坚持让你使用它。我使用金字塔,它非常适合这个项目。

标签: python django google-app-engine pylons webapp2


【解决方案1】:

更新:这个答案现在已经过时了。

我的选择是djangoappengine

它是 django 项目的一个分支,专为 Google App Engine 和 MongoDB 等无 SQL 数据库而设计。它的主要好处是您可以搭载来自 django 项目的所有很酷的东西,同时还可以在 GAE 的可扩展架构上运行。另一个好处是,使用 djangoappengine,与直接使用其 API 相比,您可以更轻松地脱离 App Engine(尽管说起来容易做起来难)。

有传言说 Django 会将这些更改合并到主线 Django 项目中,但还没有发生(截至 2014 年 5 月)。

一些相关链接:

【讨论】:

  • 我已经删除了过期的评论。
【解决方案2】:

我个人很喜欢使用此模板在 App Engine 上使用 Flask: https://github.com/kamalgill/flask-appengine-template

此模板中的代码组织得很好,它包含许多不错的开发功能,例如分析和应用统计信息。

【讨论】:

    【解决方案3】:

    如果你想构建大型应用,需要更灵活的框架,那么你可以看看

    Pyramid Python Framework

    以前它被称为Pylons。很多优秀的公司都在使用这个框架。

    您可以在他们的网站上找到将其部署到 appengine 的过程的说明:http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/deployment/gae_buildout.html 该过程使用构建并且还包括本地测试环境。

    【讨论】:

    • 我知道 pylons 并且我离开了它,我更喜欢更明确的风格
    • 顺便说一句,它在appengien上运行吗?这是问题的一部分
    • 是的,它在谷歌应用引擎上运行。 docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/…
    • 这太棒了。我将链接添加到您的答案:)
    • 感谢您添加链接。
    【解决方案4】:

    我对这个样板非常满意:

    https://github.com/coto/gae-boilerplate

    看看它的功能和特点,很全!

    【讨论】:

      【解决方案5】:

      (请注意,此答案已过时且不再有效。)


      在阅读了 Tom Willis 对该问题的评论以及 this SO question's 接受的答案后,我注意到 webapp/webapp2 看起来很有希望。

      • Google 做出了一定程度的承诺
      • 无需为现有 SDK 处理程序创建和维护自己的版本
      • 有些库是使用 App Engine 创建的,它们基于 webapp,需要端口或适配器才能与其他框架配合使用
      • can be used outside appengine
      • 单元测试易于设置和documented here

      【讨论】:

      • 这是一个旧答案,请立即查看已接受的答案。
      【解决方案6】:

      我很享受

      http://ferris-framework.appspot.com/

      这是专门为 GAE 编写的。总的来说我喜欢 Django,但不是为了 gae,我觉得使用 django-nonrel 仍然需要太多注意事项,这是不值得的。

      【讨论】:

        【解决方案7】:

        我写了GAEStarterKit,目的是让你尽快跟上进度。它与 GAE-Boilerplate 或 gae-init 等项目类似,但有一些关键区别:

        • 首先也是最明显的,我在 HTML5 Boilerplate 上使用了 UIKit。 Boilerplate 是一个不错的选择,很明显,受欢迎是有好处的,但为了快速入门,我觉得 uikit 更“完整”。
        • 我做了很多工作来确保用户登录/注册系统尽可能经过深思熟虑。用户可以拥有多个电子邮件地址、多种身份验证方法,并与多个租户关联(如果适用)。非 Google 用户的社交登录方面是通过 Authomatic 完成的,这是一个很棒的项目并且得到了很好的支持。
        • 虽然它的边缘有点粗糙,但我做了一些与 Django 的 GenericViews 非常相似的东西,但在 Flask 和 GAE 模型中。我为此使用了 WTForms 集成,所以它开箱即用,效果很好。它当然不完美,但已经相当不错了。
        • 我真的很认真地考虑不重复自己的想法。例如在 gae-init 中,你会发现很多 CRUD 代码。对于管理方面,您可以在 GAEStarterKit 中将模型添加到管理 GUI,只需一个导入,一个功能即可。

        可能值得考虑。

        【讨论】:

          猜你喜欢
          • 2012-04-11
          • 2011-01-11
          • 2014-07-20
          • 2011-08-21
          • 2012-02-12
          • 1970-01-01
          • 2016-08-01
          • 1970-01-01
          相关资源
          最近更新 更多