目前市场上Python 2.X系列与Python 3.X系列共存的现象。读者可以安装Python 2.X系列或者Python 3.X系列。如果开发的目的是基于原有Python 2.X系列产品的维护,作者建议选择Python 2.X系列;如果是开发一个完全新的产品,那么作者建议选择Python 3.X系列。作者写这本书的时候,Python的最高版本是3.6,但是作者担心Python 3.6还是不成熟,所以本书选择版本的是Python 3.5。
Python工具的官方下载地址是http://www.python.org/download。
Python下载完毕以后务必注意要配置好环境变量。(本书全部基于Windows开发环境进行介绍。)
图1-1是配置PYTHON_HOME变量,变量值为安装Python的文件路径,在Python3.5中默认为C:\Users\<Your_ID>\AppData\Local\Programs\Python\Python35。
图1-2是在path中增加的两个参数,设置%PYTHON_HOME%是为了可以在任意路径下运行python命令;设置%PYTHON_HOME%\Scripts\是为了可以在任意路径下运行%PYTHON_HOME%\scripts\路径下的命令,比如pip或pip3。
图1-1 PYTHON_HOME的配置
图1-2 PATH中的配置
Django项目是一个Python语言定制框架,它源自一个在线新闻 Web站点,于2005年以开源的形式被释放出来。Django 框架的核心组件如下。
(1)用于创建模型的对象关系映射。
(2)为最终用户设计完美的管理界面。
(3)一流的 URL 设计。
(4)设计者友好的模板语言。
(5)缓存系统。
Django是用Python语言开发的一个开源的Web开发框架(OpenSource Web Framework,OSWF),它鼓励快速开发,并遵循MVC设计理念。Django遵守BSD版权[1],初次发布于2005年7月,并于2008年9月发布了第一个正式版本1.0。
Django根据比利时的爵士音乐家DjangoReinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。
由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times[2]评选为2013 SDTimes 100,位列“API、库和框架”分类第六位,被认为是该领域的佼佼者。
Django的主要目的是简便、快速地开发数据库驱动的网站。它强调代码的复用以及多个组件可以很方便地以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,甚至可以很方便地开发出自己的工具包。这使得Django具有很强的可扩展性。Django还强调快速开发和DRY(Do Not Repeat Yourself)的原则。
Django基于MVC的设计十分优美。
(1)对象关系映射(Object-RelationalMapping,ORM):以Python类形式定义数据模型,ORM将模型与关系数据库连接起来,将得到一个非常容易使用的数据库API。虽然在Django中可以使用原始的SQL语句。一般从安全角度来说,是不建议的,因为一是Django已经对SQL语句进行了很好地封装,二是显示SQL语句容易引发类似SQL注入的威胁。本书将在第2.7节中进行详细地介绍。
(2)URL分配:使用正则表达式匹配URL,就可以设计任意的URL。本书将在第2.8.1节中进行详细地介绍。
(3)模板系统:Django提供强大而可扩展的模板语言,它可以分隔设计、内容和Python代码,并且具有可继承性。本书将在第2.9节中进行详细地介绍。
(4)表单处理:可以方便地生成各种表单模型,实现表单的有效性检验。可以方便地从定义的模型实例生成相应的表单。本书将在第3.3节开始进行详细地介绍。
(5)Cache系统:可以挂在内存缓冲或其他的框架实现超级缓冲——实现所需要的粒度。
(6)会话(session):用户登录与权限检查,快速开发用户会话功能。本书将在第2.4节中进行详细地介绍。
(7)国际化:内置国际化系统,方便开发出多种语言的网站。
(8)自动化的管理界面:不需要使用大量的工作来创建人员管理和更新内容。Django自带一个Admin Site,类似于内容管理系统。
(1)用manage.py runserver启动Django服务器。
(2)同时载入同一目录下的settings.py。该文件包含了项目中的配置信息,如URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Django哪个Python模块应该用作本站的URLConf。见图1-3所示。
图1-3 settings.py中的ROOT_URLCONF
(3)当访问URL的时候,Djang会根据ROOT_URLCONF的设置来装载URLConf。
(4)然后按顺序逐个匹配URLConf里的URLpatterns。如果找到则会调用相关联的视图方法,并把HttpRequest对象作为第一个参数(通常是request)。
(5)最后该view方法负责返回一个HttpResponse对象。
请参见图1-4。
图1-4 Django的工作原理
[1] BSD (Berkeley Software Distribution,伯克利软件套件)是UNIX的衍生系统,在1977至1995年间由加州大学伯克利分校开发和发布的。——百度百科
[2] SD Time即《软件开发时代》杂志