Django的历史';人气

Django的历史';人气,django,history,Django,History,什么样的事件序列使Django成为最流行的Python web框架。。还是这样吗?尽管还有其他几个框架 注意:这个问题既不是争论性的,也不是对抗性的。我只是要求(客观的)“事件的顺序”,导致它的实际流行。意识到这一点,我并不打算让任何人争论技术优势。我注意到它经常被宣传为Python中的Ruby on Rails等价物。它还连接到谷歌(谷歌主办Django活动,并在其应用程序引擎中支持)。一个被谷歌认可的网络框架必须具备一定的价值 至于Django随着时间的推移的流行(你的问题标题的字面意思,如

什么样的事件序列使Django成为最流行的Python web框架。。还是这样吗?尽管还有其他几个框架


注意:这个问题既不是争论性的,也不是对抗性的。我只是要求(客观的)“事件的顺序”,导致它的实际流行。意识到这一点,我并不打算让任何人争论技术优势。

我注意到它经常被宣传为Python中的Ruby on Rails等价物。它还连接到谷歌(谷歌主办Django活动,并在其应用程序引擎中支持)。一个被谷歌认可的网络框架必须具备一定的价值

至于Django随着时间的推移的流行(你的问题标题的字面意思,如果不是你真正的问题的话),请看一看。

当Django在2005年出现时,许多Python web框架已经存在了——事实上,到那时,这个笑话已经流传开来,Python是“web框架多于关键字的语言”(Guido拒绝了我在Py3k中添加更多关键字的建议)。现在“django”本身作为搜索词有点模棱两可(它也是一个流行吉他手的名字,他的生活启发了伍迪·艾伦的电影,等等),但还是添加了“python”你可以看到,与另一个经典的Python web框架Zope相比,Zope的相对受欢迎程度发生了怎样的变化。几乎每个季度都在稳步增长,在2008年第二季度初出现了惊人的飞跃……这恰好与谷歌发布App Engine的日期相吻合(在这种情况下不可能证明因果关系,但巧合至少是有趣的;-)

AppEngine基本上排除了任何严重依赖自定义C代码组件或本质上需要“高度关系化”的Python web框架功能性;在那些只使用纯Python代码运行良好的应用程序中,Django可能是App Engine最直接和最明显支持的。然而,这只是一个提振,增加了Django潜在的健康增长趋势。这一趋势的解释(事实上,对于App Engine团队和用户如此支持Django的决定也是如此)必须存在于Django本身固有的特性中

Django有时会被批评为“太神奇”或“太单一”,与塔架、TurboGears、Werkzeug和c相比,后者重量更轻(尤其是后者,我最喜欢的;-),更透明,允许更容易地在特定组件(ORM、模板和c)中进行交换然而,Django的流行告诉我们,对于大多数对开发服务器端网站和应用程序感兴趣的人来说,Django的这些设计选择都是积极的:Django被视为一个非常丰富和集成良好的框架(它确实有很多附加组件和贡献的“插件”),但这与其说是其优势的原因,不如说是一种结果)


易上手、自动化的“管理页面”等——以及Django可以通过大量的技能和工作来创建真正丰富复杂的网站/应用程序,并适应特殊或独特的需求——可能是“杀手级功能”。要想最好地使用Werkzeug,您需要了解HTTP和WSGI,并选择和集成您最喜欢的存储和模板——基于Python的网站和应用程序的开发人员(从某种意义上说,比如Rails的用户,或者更流行的PHP的用户)正在“用他们的思维份额投票”对于一个环境,他们不需要做任何这些,但可以主要集中在他们的应用领域。我必须承认他们可能有一点;-)。

我认为有几个因素,它们的组合大于它们各自权重的总和

一个是时间安排:Django在Rails的第一轮大肆宣传中表现得恰到好处,因此它立即被描绘成“Python对Rails的回答”。这几乎从一开始就引起了项目上不少眼球的关注。事实上,Adrian在“蛇与红宝石”上在芝加哥会面,并参加了关于Rails的并排会谈,Django为此做了很多

另一个因素是Django一直是一个单一的包安装(不完全是这样:您仍然需要一个数据库适配器,除非您使用的是Python2.5+和SQLite,但距离足够近)非Zope的替代方案都集中在将组件选择留给开发人员手中,需要做更多的工作才能完成基础教程:您需要寻找ORM、模板语言等,并将它们全部安装和配置。尽管这在过去几年中变得更好多年来,我认为那挥之不去的记忆仍然有影响

Django带着文件走出大门(如果我自己可以这么说的话)它远远高于开源项目的通常标准,而且随着时间的推移,它只会变得更好。尽管本教程有许多缺点,但它找到了一些使Django有用的要点,并且文档的其余部分一直都是高质量的,既有API参考,也有重要的“如何使用”这会产生一个很好的开箱即用的体验,并有助于指导后的学习曲线(这一直困扰着Zope)

我还认为有一种看法——不管是正确的还是错误的——比如说,对于已经熟悉WSGI和Python web生态系统的有经验的开发人员来说,Pylon或Werkzeug确实更好;事实上,它们往往是获取您现有的最喜欢的库并将它们连接在一起的强有力的选择,这就是原因,我认为墨汁,也许会促使一些新的人转向Django的综合方法。当然,还有另一面