Django 是一个开放源代码的 Web 应用框架,由 Python 写成,最初用于管理劳伦斯出版集团旗下的一些新闻内容为主的网站,即CMS (内容管理系统) 软件,与2005年7月在BSD许可证下发布,这套框架是以比利时的吉卜赛爵士吉他手 Django Reinhardt 来命名的。Django 采用了 MTV 的框架模式,即模型(Model)、模板(Template) 和视图(Views),三者之间各自负责不同的职责。

    • 模型:数据存取层,处理与数据相关的所有事务,例如如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。

    • 模板:表现层,处理与表现相关的决定,例如如何在页面或其他类型的文档中进行显示。

    • 视图:业务逻辑层,存取模型及调取恰当模板的相关逻辑,模型与模板的桥梁。

    Django 的主要目的是简便、快速地开发数据库驱动的网站。它强调代码复用,多个组件可以很方便地以插件形式服务于整个框架。Django 有许多功能强大的第三方插件,可以很方便地开发出自己的工具包。这使得 Django 具有很强的可拓展性。此外,Django 还强调快速开发和 DRY(Do Not Repeat Yourself)原则。Django 基于 MTV 的设计十分优美,其具有一下特点:

    • 对象关系映射(Object Relational Mapping,ORM):通过定义映射类来构建数据模型,将模型与关系数据库连接起来,使用 ORM 框架内置的数据库接口可实现复杂的数据操作。

    • URL 设计:开发者可以设计任意的URL(网站地址),而且还支持使用正则表达式设计。

    • 模板系统:提供可拓展的模板语言,模板之间具有可继承性。

    • 表单处理:可以生成各种表单模型,而且表单具有有效性检验功能。

    • Cache 系统:完善的缓存系统,可支持多种缓存方式。

    • Auth 认证系统:提供用户认证、权限设置和用户组功能,功能拓展性强。

    • 国际化:内置国际化系统,方便开发出多种语言的网站。

    • Admin 后台系统:内置 Admin 后台管理系统,系统可拓展性强。