python_django_中间件
Posted Vera_y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python_django_中间件相关的知识,希望对你有一定的参考价值。
什么是中间件?
可以介入django的请求和响应的轻量级的底层插件,它其实就是一个python类,我们在settings配置文件中的↓↓↓↓,都是中间件
MIDDLEWARE = [ \'django.middleware.security.SecurityMiddleware\', \'django.contrib.sessions.middleware.SessionMiddleware\', \'django.middleware.common.CommonMiddleware\', \'django.middleware.csrf.CsrfViewMiddleware\', \'django.contrib.auth.middleware.AuthenticationMiddleware\', \'django.contrib.messages.middleware.MessageMiddleware\', \'django.middleware.clickjacking.XFrameOptionsMiddleware\', ]
这个python类中的方法运行于每个请求中(其中方法执行的位置为↓↓↓):
方法:
__init__ | 不需要传参数,服务器响应第一个请求的时候自动调用,用于确定是否启用该中间件 |
process_request(self,request) |
在分配url之前被调用,返回None或HttpResponse对象 |
process_view(self,request,view_func,view_args,view_kwargs) | 调用视图views之前被调用,返回None或HttpResponse对象 |
process_template_response(self,request,response) |
在视图views刚好执行完后(在view正要去匹配template的html的过程中)被调用,返回None或HttpResponse对象 |
process_response(self,request,response) |
所有响应返回浏览器之前调用(templates要返回页面给浏览器了),返回HttpResponse对象 |
process_exception(self,request,exception) | 当视图抛出异常时调用,返回HttpResponse对象 |
自定义中间件:
1、创建中间件文件
- 在应用级myapp下写中间件函数
- 在项目下创建middleware目录,并在目录下创建myapp目录,在下面编写py文件
2、自定义中间件
from django.utils.deprecation import MiddlewareMixin # 所有自定义中间件都要继承MiddlewareMixin模块 class mymiddle(MiddlewareMixin): def process_request(self,request): print(\'get参数为:\', request.GET.get(\'a\'))
3、使用自定义中间件
配置settings.py 文件:MIDDLEWARE = [\'middleware.myapp.myMiddle.MyMiddle\',] # 中间件函数的路径
注:浏览器的每个请求都会执行中间件
以上是关于python_django_中间件的主要内容,如果未能解决你的问题,请参考以下文章
老白爱学习:2020年_Python_Django基础+实战全套视频千锋
python_Django 实现登入功能form表单的参数接收处理
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段