介绍Django
伟大的开源软件几乎总是出现,因为一个或多个聪明的开发人员有问题要解决,没有可行或成本效益的解决方案。 Django也不例外。 Adrian和Jacob早就从项目中“退休”了,但是驱使他们创造Django的基本原理依然存在。 正是这种现实世界体验的坚实基础使得Django成功。 为了表彰他们的贡献,我认为最好让他们用自己的话来介绍Django(从原书中编辑和重新格式化)。
介绍Django
Adrian Holovaty和Jacob Kaplan-Moss - 2009年12月
在早期,Web开发人员手写每个页面。更新站点意味着编辑HTML; “重新设计”包括一次重做一个页面。随着网站的发展和变得更加雄心勃勃,很快显而易见的是,这种方法乏味,耗时且最终站不住脚。
NCSA(国家超级计算应用中心,第一个图形化Web浏览器,Mosaic)的一群咄咄逼人的黑客通过让Web服务器生成可动态生成HTML的外部程序来解决这个问题。他们把这个协议称为通用网关接口(CGI),它永远改变了网络。现在很难想象CGI在说什么:CGI不会将HTML页面看作是磁盘上的简单文件,而是允许您将页面视为根据需要动态生成的资源。
CGI的发展迎来了第一代的动态网站。但是,CGI有其问题:CGI脚本需要包含大量重复的“样板”代码,这使得代码重用变得困难,并且不容易让第一次开发人员编写和理解。
PHP解决了许多这些问题,使世界哗然 - 它是现在最流行的创建动态网站的工具,有数十种类似的语言(ASP,JSP等)跟上PHP的设计。 PHP的主要创新之处在于它的易用性:PHP代码简单地嵌入到纯HTML中;已经了解HTML的人的学习曲线很浅。
但是PHP有它自己的问题;它很容易使用,以鼓励懒惰,重复和易出错的代码。更糟糕的是,PHP对安全漏洞的程序员没有太多的保护作用,所以很多PHP开发人员发现自己学习安全性太迟了。
这些和类似的挫折直接导致了当前的“第三代”Web开发框架。随着Web开发的这个新的爆炸式增长,Web开发人员每天都在做越来越多的事情。
Django正是为了满足这些新的野心而发明的。
Django的历史
Django由堪萨斯Lawrence的Web开发团队编写的真正应用程序有机地增长。它诞生于2003年秋天,世界劳伦斯日报的网络程序员Adrian Holovaty和Simon Willison开始使用Python来构建应用程序。
负责生产和维护一些当地新闻网站的世界在线小组,在截止日期前的发展环境中蓬勃发展。对于这些网站,包括LJWorld.com,Lawrence.com和KUsports.com,记者(和管理层)都要求增加功能,整个应用程序的建立速度非常快,通常是几天或几小时。因此,Simon和Adrian开发了一个节省时间的Web开发框架 - 他们能够在最后期限内构建可维护的应用程序的唯一方法。
在2005年夏天,在框架已经被开发出来以有效地支持World Online的大部分站点之后,包括Jacob Kaplan-Moss在内的团队决定以开放源码的形式发布框架。他们于2005年7月被释放,在爵士吉他手Django Reinhardt之后被称为Django。
这个历史是相关的,因为它有助于解释两个关键的东西第一个是Django的“甜蜜点”。由于Django出生在新闻环境中,因此它提供了特别适合内容站点(如管理站点,如第5章中所述)的功能,例如Amazon.com,craigslist.org和washingtonpost.com,驱动的信息。
但是,虽然Django对开发这些类型的站点特别有用,但它并不妨碍它成为构建任何类型的动态Web站点的有效工具。 (在某些情况下,特别有效,在其他情况下是无效的)。
第二点要注意的是,Django的起源如何塑造了开源社区的文化。由于Django是从真实世界的代码中提取的,而不是一个学术性的练习或商业产品,所以它非常重视解决Django开发人员所面对和将要面临的Web开发问题。因此,Django几乎每天都在积极改善。框架维护者在确定Django什么时候节省开发人员时间方面拥有既得利益,从而导致应用程序易于维护并在负载下正常工作。