Django开发版本与稳定版本的区别
我准备开始学习Django,并开发一个我想在Google App Engine上部署的网页应用。我了解到Google的APP引擎上已经安装了Django 0.96这个版本,但我看到最新的“官方”版本是1.2.3,安装起来有点麻烦。
我很好奇,哪一个版本的Django使用得最广泛。
所以,你能帮我看看我应该学习和部署哪个Django版本吗?我主要考虑以下几点:
- 稳定性和适合生产环境的能力
- 应用程序(或插件)的可用性,以及哪个版本最受社区支持
非常感谢!
3 个回答
还有一个需要考虑的事情就是你怎么安装。建议你从SVN安装django,因为这样更新起来会简单很多。
我在我的网站上使用开发版已经有一段时间了,除了一个小问题影响了管理界面(这个问题通过svn up解决了)之外,我没有遇到过任何bug。
我不太清楚大家是用1.2版本还是开发版,但根据我的经验,开发版完全可以用。代码里可能出现的重大错误会很快被修复,而且通过svn up可以让你更新到最新的代码,以防你遇到带有重大bug的版本。
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()
现在大多数人都在使用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?
特别是我在那里的回答和评论。