中间件(Middleware)是用来处理Django的请求(Request)和响应(Response)的框架级别的钩子,他是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。使用Django初期一般不会使用到中间件开发,但是后期如果项目规模比较大的时候,中间件的开发就很重要了。
当某个用户在网站中进行操作时候,这个过程就是用户向网站发送HTTP请求(Request);而网站会根据用户的操作返回相关的网页内容,这个过程是响应处理(Response)。从请求到响应的过程中,当Django接收到用户请求时,首先经过中间件处理请求信息,执行相关的处理,然后将处理结果返回给用户。
中间件的作用就是处理用户请求和返回响应内容。在实际项目中可以根据自己的开发需求自定义中间件,只要将自定义的中间件加在settings.py文件中的MIDDLEWARE属性中激活即可,如下图我们加入了自己定义的中间件'django.mymiddleware.LoginMiddleware'(中间件的开发后期单独记录):
配置属性MIDDLEWARE的数据格式为列表类型,每个中间件的设置顺序是固定的,因为中间件的执行顺序是从上到下的,所以如果不同中间件顺序不一样的话,有可能会出现意外的情况。
- SecurityMiddleware:Django内置的安全机制,保护用户与网站的通信安全。
- SessionMiddleware:会话Session的功能。
- LocaleMiddleware:国际化和本地化功能。
- CommonMiddleware:处理请求信息,规范化请求内容。
- CsrfViewMiddleware:开启网站的CSRF防护功能。
- AuthenticationMiddleware:开启Django的内置用户认证系统。
- MessageMiddleware:开启内置的信息提示功能。
- XFrameOptionsMiddleware:防止恶意的程序单机劫持。