1.1 Django的产生背景
1.1.1 Django的创建背景
假设现在没有Django,我们要开发一个Web站点,需要做哪些工作,写哪些组件去完成它呢?通常需要做下面的几件事。
(1)构建用户账户体系,实现Web站点的登录与注册功能。
(2)定义数据表模型及实现访问功能。
(3)编写业务逻辑实现站点功能。
(4)实现后台管理功能。
(5)路由模型实现功能请求映射。
以上这些就是实现一个基本的Web站点需要做的工作。A站点做完之后,我们可能还需要去做B站点,但是,通常不同的站点只是步骤(3)的业务逻辑不同,其他的功能需求是类似的,甚至是完全一样的。那么能不能把通用的组件或者模块组合在一起,提供给开发Web站点的人使用呢?后来就出现了Web框架的概念,这就是Django产生的根本原因。
Django最初是被开发用来管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。2003年秋天,Lawrence Journal-World报社的Web开发者艾德里安·胡卢瓦提(Adrian Holovaty)和西蒙·威利森(Simon Willison)开始使用Python语言去构建应用,他们所在的World Online小组搭建并维护当地的几个新闻站点。新闻界的快节奏促使团队不断提高其产品开发速度,于是Simon和Adrian想办法构建出一个能够节省开发时间的框架,将可重用的组件组合在一起,不必做重复的工作,就这样,Django诞生了。之后,World Online小组的成员雅各布·卡普兰-莫斯(Jacob Kaplan-Moss)将这个框架发布为一个开源软件。
经过数年发展,Django有了数以万计的用户和贡献者,现在的Django毫无疑问已经成为Python开发中最流行的Web框架。
1.1.2 Django的版本发布过程
Django遵守BSD(Berkeley Software Distribution,伯克利软件发行版)版权,初次发布于2005年7月,并于2008年9月发布了第一个正式版本1.0。
从正式版1.0之后,Django的版本发布过程如下。
(1)功能版本:版本号定义为A.B、A.B+1等,大约每8个月发布一次,每个版本均包括新功能以及对现有功能的改进。
(2)补丁版本:版本号定义为A.B.C、A.B.C+1等,用来修复bug或者是安全问题,补丁版本是100%兼容相关的功能版本的,所以,除了由于安全问题或者是可能造成数据丢失的情况之外,都应该升级到最新的补丁版本。
(3)LTS版本:即长期支持的版本,某些功能版本会被指定为LTS版本,如1.8LTS版本,这类版本的安全更新时长至少需要3年。
值得注意的是,Django最后一个支持Python 2.7的版本是1.11LTS,在本书写作之际,Django最新的功能版本是2.0,如果想使用最新版本的话,需要选择Python 3。