2010-10-24 40 views
2

我即将开始在Django上开发并开发一个我想在Google App Engine上部署的Web应用程序。我知道Google已经在APP引擎上安装了Django 0.96,但是我看到的最新的“官方”版本的Django的版本是1.2.3,并且在那里安装了一些。Django开发版vs稳定版

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

所以,可以请你指导我该Django的版本,我应该斜坡上,并基于以下标准

  1. 稳定性和适用性进行产品发布部署
  2. 空房的应用程序(或插件)和版本最受社区支持

非常感谢!

回答

3

大多数人正在使用Django 1.2。你不应该使用或学习Django .96 - 这是非常古老的,并且学习使用它不会为任何非应用引擎Django工作做好准备,因为事情自那以后发生了显着变化。

因为你失去了很多的ORM,所以在App Engine上的Django是一件很痛苦的事情,这是与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?

特别是我的回答有,并在它的意见。

+0

谢谢!那么你在哪里部署你的Django应用?有什么建议么? – arbithero 2010-10-25 01:21:04

+0

我想要一些非常具有伸缩性并且有免费配额的东西。我的预算很少,因此我在托管方面的支出将取决于我获得的流量。 – arbithero 2010-10-25 01:24:38

+0

我使用Rackspace和Slicehost在VPS设置中部署我的应用程序。既然我已经为托管支付了费用,那么添加另一个小项目并不会花费我任何东西,然后如果它增长,我可以将其分开。你可以真正在大多数主机上部署一个Django应用程序。 “免费”最终会咬你。 Rackspace产品非常便宜(我在带宽之前支付10美元/月/服务器)。亚马逊的AWS也是另一种轻松扩展的选择。他们目前为一年的新客户提供免费的“微型”实例。 http://aws.amazon.com/free/ – 2010-10-25 18:54:51

3

应用引擎允许您使用开箱即用的其他版本的django,只需要使用google.appengine.dist.use_library即可。基本上,你的主要。PY(由app.yaml规定来处理的URL模块)应该是这样的:

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() 
+0

是的,但是Django并没有在App Engine上开箱即用,这是问题的关键。 – 2010-10-25 18:53:55

+0

上面的代码是特定于应用程序引擎的。使用0.98是不合情理的,虽然它是使用'import django'导入的默认版本,但是应用引擎有1.1版本可用,但这几乎没有那么痛苦。这不是最新的,但对大多数用途来说可能已经够用了。除非您需要1.1版中的功能,否则上述方法比上传另一个版本要容易得多。 – SingleNegationElimination 2010-10-25 21:19:17

0

另一个要考虑的是你如何安装。我一定会从SVN安装django,因为它使更新变得更容易。

我一直在我的网站上使用开发版本一段时间,并没有遇到过一个单一的错误,除了一个影响管理网站在一个小的方式(这是一个svn的固定)。

我不知道人们是否使用1.2或dev,但以我的经验,dev是完全合适的。您在代码中可能遇到的任何重大错误都会很快得到修复,并且svn up会让您获得最新的代码,因为您很可能会得到一个包含重大错误的修订。

+0

dev版本相对稳定,但构建确实会周期性地中断。这对开发很有用,但我不会在其上运行生产站点。 – 2010-10-25 18:53:25