代码之家  ›  专栏  ›  技术社区  ›  notnoop

django和app引擎

  •  27
  • notnoop  · 技术社区  · 15 年前

    我想检查一下目前在google app引擎上运行django的状态,以及在gae上运行django相对于简单地使用webapp有什么好处。

    django的主要杀手特性imho是可重用的应用程序和中间件。不幸的是,目前大多数django应用程序使用模型或模型表单(django标记、django评论、django配置文件、pinax应用程序)。

    那么django还有哪些功能或好处可以在google app engine中运行(除了那些被禁用的功能:流行的django应用程序、会话和身份验证中间件、用户和管理员、模型等)。

    另外,有没有一个django应用程序的列表,也可以在app engine中工作?

    7 回复  |  直到 6 年前
        1
  •  11
  •   dar    14 年前

    app-engine-patch 目前拥有大多数django功能,包括sessions、contrib.auth、sites和其他一些标准django应用程序。但是,它的主要缺点(我的意见)是它使用了django的修改版本的zip文件来实现此功能,而当前的维护人员似乎没有跟上django当前的版本。目前看来,过去和现在的维护人员一致认为,这种方法过于繁琐,无法维护,因此目前没有人维护它。

    google-app-engine-django ,使用了生产gae运行时中包含的最新django版本的monkey补丁方法,因此只要google继续跟踪django的发布,您就可以了解django的最新情况。但是,它目前还没有完全移植contrib.auth,因此只能使用google帐户进行身份验证—这可能是一个很大的缺点,这取决于您是否希望contrib.auth用户模型在sql后端上像您所知道的那样工作。在helper中也没有django管理支持,因为有应用程序引擎补丁。一 fork of django-app-engine-django 它添加了一些contrib应用程序,如flatpages、sites和sitemaps。另外请注意,它只适用于1.1之前的django版本,直到 issue #3230 django 1.2被添加到使用库中,除非您将django作为zip文件上传。

    在地平线上,app engine补丁的原始开发人员已经在 django-nonrel 分支,但这可能离django发行版还很远。这个 django developers thread 有很多关于这些努力的信息。

    另外,还有一个 google summer of code 集成非本地数据库某些方面的项目。

        2
  •  3
  •   James Polley    15 年前

    app-engine-patch 获取在appengine中工作的大部分内容,以便(主要)使用直接的modelforms、使用django用户和管理员等。

    我只在相当简单的项目中使用过它(对django来说是很新的),但是他们声称大多数django应用程序在appengine上(最多)会进行一些小的修改。例如,app engine补丁使用appengine模型类而不是django类;有些基本视图效率太低,无法在appengine上运行。

    补充: google-app-engine-django 类似;但提供了一个与django的basemodel相同的basemodel。我的理解是,googleappenginedjango是由google发布的,然后分叉创建app engine补丁。app engine补丁的维护者似乎与googleappenginedjango的创建者有一些不同的目标,因此您可能会发现,两者中的一个更适合您的需求。

    谷歌已经提供了 some articles 关于在app engine上运行django应用程序;最近的一篇文章实际上是appengine补丁作者的一篇客座文章。

        3
  •  1
  •   Kris Walker    15 年前

    我已经取得了最好的成功,只需选择我需要的django特性,并将它们修补到webapp中。在我最近的一个项目中,我实际上完全删掉了webapp的内容。我仍然导入并调用几个webapp实用程序函数,但它主要是一个手工创建的应用程序,由gae和django的优秀部分构建而成。

        4
  •  1
  •   user94154    15 年前

    您可能对web2py感兴趣,它是另一个python框架,据说在gae和“普通”web服务器之间没有太大的摩擦。

        5
  •  1
  •   Alon Gutman    12 年前

    现在在gae上使用full django非常容易: https://developers.google.com/appengine/articles/django-nonrel#ps

        6
  •  0
  •   Rich Churcher    13 年前

    应用程序引擎提供的django版本 has been updated to 1.2.5 使用最新的sdk版本( 1.4.2 , changelog )此版本可通过 use_library() 声明,这样你就不再需要在相同的程度上乱搞猴子补丁了。

        7
  •  0
  •   Joseph Victor Zammit    12 年前

    除了python标准库、gae工具和gae python运行时环境之外,googleappengine(gae)python 2.7运行时还提供了几个应用程序可以使用的第三方库。其中一个是Django。下面是从 third-party libraries :

    要在Python2.7中使用django,请在app.yaml中指定wsgi应用程序和django库:

    ...
    handlers:
    - url: /.*
      script: main.app  # a WSGI application in the main module's global scope
    
    libraries:
    - name: django
      version: "1.2"