【问题标题】:Django + Google App Engine: app engine helper for django or use_library?Django + Google App Engine:django 或 use_library 的应用引擎助手?
【发布时间】:2011-01-03 00:35:14
【问题描述】:

似乎有两种方法可以将 django 1.1 与 GAE 一起使用

我们目前使用第一个。我们应该换吗?两者有什么区别?

【问题讨论】:

标签: django google-app-engine


【解决方案1】:

仅供参考,至少还有一种方法可以在 GAE 中获取 Django 1.1。

看看http://code.google.com/p/app-engine-patch/

它允许使用大多数 Django 功能,包括 Admin。

【讨论】:

  • 正如 Chango 所评论的,app-engine 补丁似乎是dead
【解决方案2】:

use_library 在生产环境中加载一个未打补丁的 django 版本,所以很多东西在 app-engine 上都无法开箱即用。

帮助程序将一系列补丁应用于 django 库以启用会话、测试、缓存框架等功能。如果您没有将自己的 django 副本添加到帮助程序应用程序中并且您使用的是最新版本 (r100或更高版本),助手首先尝试加载 django 1.1,如果不成功,则加载 1.0。您可以在appengine_django/__init__.py::LoadDjango 中看到这一点。

在生产 GAE 上,django 1.1 始终存在,因此首先加载它。

但是,在您的开发环境中,开发服务器 SDK 不会分发 Django。因此,它使用它可以找到的任何版本的 Django,首先尝试 1.1,然后尝试 1.0,如果找不到,则抛出 UnacceptableVersionError

您可能想要使用帮助程序而不是use_library,因为那样您将需要自己修补原始 django 库,从而复制帮助程序中的工作。您是否分发自己的 django 版本,无论是作为文件夹还是 zip 文件,都取决于您。不分发您自己的 django 副本的优点之一是,当 google 应用安全补丁时,您会自动获取它们,而无需重新部署您的应用程序。

【讨论】:

  • 所以使用 Django Helper,但请确保我们使用最新版本。很好的答案,谢谢。
  • 最终查询 - 我认为我们仍然需要在 django.zip 中包含 1.1?
  • 不,如果你想使用 1.1,助手会为你加载 1.1,你不需要在 django zip 文件中包含 1.1。
【解决方案3】:

【讨论】:

    【解决方案4】:

    替代品称为 django-nonrel(和 djangoappengine)...您可以在以下位置找到它 http://www.allbuttonspressed.com ... 使用 django-nonrel,您应该能够在 App Engine 之上运行纯 Django 应用程序,而无需调整您的模型!

    【讨论】:

      【解决方案5】:

      从 GAE 1.5.0 开始,有一种更简单的方法来指定 Django 版本。

      appengine_congif.py 中,包含该行

      webapp_django_version = '1.2'
      

      这将导致use_libary() 在幕后发生。

      【讨论】:

        猜你喜欢
        • 2013-01-10
        • 1970-01-01
        • 1970-01-01
        • 2011-12-23
        • 2010-12-31
        • 2011-02-01
        • 2012-12-30
        • 2014-04-11
        • 2011-09-16
        相关资源
        最近更新 更多