Django是一个用Python实现的开源Web框架,最初用于劳伦斯出版集团旗下一些新闻网站的内容管理。
Django于2005年7月在BSD许可证下发布,它以比利时的吉普赛爵士吉他手Django Reinhardt的名字来命名。
Django采用了类似于MVC的MTV框架,即Model(模型)、Template(模板)和View(视图)。
模型:数据存取层,处理所有与数据相关的事务,例如模型定义、数据读写、数据关系定义、数据有效性验证等。
模板:表现层,使用模板语言设计数据在页面中的显示形式。
视图:业务逻辑层,决定调用哪些模型和模板,是模型与模板之间的桥梁。
Django将MVC中的“视图”分解为Django视图和Django模板,即分别决定“用哪些数据完成哪些任务”和“如何展示响应结果”。
Django的视图实现了MVC中的控制器部分功能。
2017年12月2日,Django发布了2.0版本,这是一次重大更新。
Django 2.0支持Python 3.4、3.5、3.6和3.7,不再支持Python 2。
Django 1.11.x系列版本是最后一个支持Python 2.7的系列。
Django 2.0也是支持Python 3.4的最后一个发行版本。
Django主要功能如下。
对象关系映射(Object Relational Mapping,ORM):用类来定义数据模型,ORM完成模型和关系数据库的映射。开发人员只需要定义和使用模型,底层的各种数据库操作(数据表的创建和修改、数据读写等)由ORM完成。
灵活的URL分发机制:Django通过URLconf(URL配置模块)来处理URL映射。开发人员可定义任意格式的网址模板,并可在网址模板中使用正则表达式。
模板系统:提供可扩展的模板语言,使用模板语言可快速完成模板设计,也可以很方便地使用视图传递给模板的数据。模板具有可继承性,通过继承,可以方便地进行模板的模块化设计。
表单处理:Django提供了一系列内置表单,这些表单覆盖了常用的Web功能。开发人员也可通过简单的扩展,为内置表单增添自定义功能。
缓存系统:完善的缓存系统,支持多种方式的缓存。
国际化:内置的国际化支持,便于开发多语种网站。
admin管理站点:Django提供的内置admin管理站点具有可扩展性,是一个网站后台管理系统,可管理项目中的模型和用户。
用户认证系统:提供用户认证、权限管理以及用户组管理等功能。