Django开发版本与稳定版本的区别

2 投票
3 回答
1284 浏览
提问于 2025-04-16 06:01

我准备开始学习Django,并开发一个我想在Google App Engine上部署的网页应用。我了解到Google的APP引擎上已经安装了Django 0.96这个版本,但我看到最新的“官方”版本是1.2.3,安装起来有点麻烦。

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

所以,你能帮我看看我应该学习和部署哪个Django版本吗?我主要考虑以下几点:

  1. 稳定性和适合生产环境的能力
  2. 应用程序(或插件)的可用性,以及哪个版本最受社区支持

非常感谢!

3 个回答

0

还有一个需要考虑的事情就是你怎么安装。建议你从SVN安装django,因为这样更新起来会简单很多。

我在我的网站上使用开发版已经有一段时间了,除了一个小问题影响了管理界面(这个问题通过svn up解决了)之外,我没有遇到过任何bug。

我不太清楚大家是用1.2版本还是开发版,但根据我的经验,开发版完全可以用。代码里可能出现的重大错误会很快被修复,而且通过svn up可以让你更新到最新的代码,以防你遇到带有重大bug的版本。

3

App Engine 让你可以直接使用其他版本的 Django,虽然过程有点麻烦,但其实也不算太复杂。你只需要用到一个叫做 google.appengine.dist.use_library 的工具。简单来说,你的 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()
3

现在大多数人都在使用Django 1.2版本。你不应该使用或学习Django .96版本——这个版本非常老旧,学会它对你以后使用Django做其他项目没有帮助,因为自那以后很多东西都发生了变化。

在App Engine上使用Django会有点麻烦,因为你会失去很多Django的ORM功能,而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.3发布时,从1.2升级会非常顺利。

我强烈建议你在花很多精力让应用在App Engine上运行之前,仔细考虑一下App Engine对你特定应用的实际价值。你会失去应用的可移植性,扩展依然困难,如果你的应用变得受欢迎,你也不会省钱。App Engine并不是一个友好的入门平台。

想要更深入讨论这个话题,可以看看这个问题:

为什么在Google App Engine上使用Django?

特别是我在那里的回答和评论。

撰写回答