Django开发版vs稳定版

时间:2010-10-24 20:40:29

标签: python django google-app-engine

我即将开始加入Django并开发一个我想在Google App Engine上部署的网络应用程序。我了解到谷歌已经在APP引擎上安装了Django 0.96,但我看到的最新“官方”版本的Django是1.2.3并且在那里安装它有点费力。

我很好奇哪个版本的Django使用最广泛。

那么,请您根据以下标准指导我应该根据哪个Django版本进行部署

  1. 生产释放的稳定性和适用性
  2. 应用程序(或插件)的可用性以及社区最支持的版本
  3. 非常感谢!

3 个答案:

答案 0 :(得分:3)

大多数人目前正在使用Django 1.2。你不应该使用或学习Django .96 - 它非常古老,并且学习使用它不会让你为任何非app-engine Django工作做好准备,因为从那时起事情发生了很大变化。

App Engine上的Django很痛苦,因为你失去了很多ORM,这是使用Django的一个非常好的理由。您也无法简单地使用任何Django ORM插入插件和可重用的应用程序。任何带有models.py的东西都不起作用。

查看google-app-engine-django以获取更新版本的帮助。

http://code.google.com/p/google-app-engine-django/

有将GAE存储引擎集成到Django中的工作,并且有几个项目有不同的工作实现,但我不希望有一段时间真正好的ORM支持--1.3(距离发布还有几个月)将包括钩子可以更容易编写NoSQL后端,但Django可能不会附带一个。

虽然旧版本的Django有安全版本,但您应该使用最新的稳定版本进行开发。 Django的主要版本具有非常强大的向后兼容性承诺,因此当它出现时从1.2到1.3将是非常无缝的。

我强烈建议您在花费大量精力让事情发挥作用之前,仔细思考App Engine提供的具体应用程序。您丢失了应用程序的可移植性,扩展仍然很难,如果您的应用程序受欢迎,您不会省钱。 App Engine不是一个宽容的入门平台。

有关此主题的更多对话,请查看以下问题:

Why use Django on Google App Engine?

特别是我在那里的答案和对它的评论。

答案 1 :(得分:3)

应用引擎允许您使用google.appengine.dist.use_library开箱即用的其他版本的django,只有一点点痛苦。实质上,你的main.py(由app.yaml指定处理网址的模块)应如下所示:

import wsgiref.handlers


from google.appengine.ext import webapp
from google.appengine.ext.webapp import util

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library   # important bit
use_library('django', '1.1')

import django.core.handlers.wsgi
def main():
  application = django.core.handlers.wsgi.WSGIHandler()
  # Run the WSGI CGI handler with that application.
  webapp.util.run_wsgi_app(application)

if __name__ == '__main__':
  main()

答案 2 :(得分:0)

要考虑的另一件事是你如何安装。我一定要从SVN安装django,因为它可以让它更容易更新。

我一直在我的网站上使用dev版本一段时间,并且还没有遇到过一个bug,除了一个以较小的方式影响管理站点的一个(修复了svn)。

我不知道人们是使用1.2还是dev,但根据我的经验,dev非常适合。您在代码中可能遇到的任何重大错误都会很快得到修复,并且svn up会让您获得最新的代码,因为您很有可能会遇到重大错误的修订。