适用场景
优缺点
架构
controller层 通过正则 将请求分发到不同的URL视图 进行处理
设计思想
Django 是遵循 MVC 架构的 Web 开发框架,但我们也可以把它描述成 MVT 的架构,因为其主要由以下几部分组成
controller层 controller url.py 通过正则 将请求分发到不同的URL视图 进行处理
模型层(Model) :提供数据访问接口和模块,包括数据字段、元数据、数据关系等的定义及操作
视图层(View) :Django 的视图层封装了 HTTP Request 和 Response 的一系列操作和数据流,负责处理用户的请求并返回响应。 其主要功能包括:
- URL 映射机制
- 绑定模板等
模板层(Template) :是一套 Django 自己的页面渲染模板语言,用若干内置的 tags 和 filters 定义页面的生成方式。它提供了一个对设计者友好的语法用于渲染向用户呈现的信息
Django 框架还提供了其它一些组件:
表单(Form) :通过内置的数据类型和控件生成 HTML 表单。
管理站(Admin) :通过声明需要管理的 Model,快速生成后台数据管理网站。
管理工具(Management) :一套内置的创建站点、迁移数据、维护静态文件的命令工具。
Django 的中间件
Django 中间件就是这种额外功能的完美示例,它位于视图和客户端之间。
Django 的中间件会在将响应发送到浏览器之前执行关键的安全性和身份验证检查,是 Django 请求 / 响应处理的钩子框架。
每个中间件组件负责做一些特定的功能。
Django中间件是在处理Django的请求request和响应response时的一种框架级别的钩子,它是一个轻量,低级别的插件系统,可以全局范围内改变Django的输入,输出。中间件的主要功能有修改请求和修改响应。
例如,Django内置了一个中间件组件AuthenticationMiddleware,这个中间件使用会话机制将用户与请求request关联起来。
在Django中,中间件组件的配置放在settings.py文件的MIDDLEWARE选项列表中,列表中的每个字符串选项都是一个类,即一个中间件。此外,中间件可以放在Python路径上的任何地方,并支持同步Python或异步Python,或者二者都支持。