之前做过一些django项目,但是在那之前没有系统的学过,路子比较野。最近闲下来,觉得很有必要重新系统的学习一下django,这是开篇。
名字的由来
最初是比利时的爵士音乐家Django Reinhardt命名,作者希望Django能够优雅的演奏(开发)功能丰富的乐曲(web应用)。
MVC
把数据存储逻辑、业务逻辑和表现逻辑组合在一起的概念被称为软件架构的 Model-View-Controller (MVC)模式。
接下来我们来分析一下Django的MVC模式:
M层:
模型层,对应的应该是models.py文件,主要用一个Python类来描述数据表。运用这个类,你可以通过简单的 Python的代码来实现数据库的操作。
V层:
view层,即显示内容以及怎么显示。视图层对应的是模板系统以及视图,对应的文件是views.py和html模板文件。
C层:
根据用户输入委派视图的部分,由 Django 框架根据URLconf 设置,对给定 URL 调用适当的 Python 函数但是由于C层是由框架自行处理。
而在Django中主要的关注还是模型(Model),模板(Template)和视图(Views),所以人们也常称这种开发模式为MTV开发模式。
特点
- 完善的文档。
- 集成数据访问组件。
- 强大的URL映射技术。
- 后台管理系统自动生成。
- 错误信息完整。
Django核心框架包括:
- 面向对象的映射器,用作数据模型(以Python类的形式定义)和关联性数据库间的媒介。
- 基于正则表达式的URL分发器。
- 视图系统,用于处理请求。
- 模板系统。
- 一个轻量级的、独立的Web服务器,用于开发和测试。
- 一个表单序列化及验证系统,用于HTML表单和适于数据库存储的数据之间的转换。
- 一个缓存框架,并有几种缓存方式可供选择。
- 中间件支持,允许对请求处理的各个阶段进行干涉。
- 内置的分发系统允许应用程序中的组件采用预定义的信号进行相互间的通信。
- 一个序列化系统,能够生成或读取采用XML或JSON表示的Django模型实例。
- 一个用于扩展模板引擎的能力的系统。