没有合适的资源?快使用搜索试试~ 我知道了~
本文实例讲述了django框架中间件原理与用法。分享给大家供大家参考,具体如下: 中间件:轻量级,介于 request和response之间的一道处理过程,在全局上改变了输入和输出 在django中就默认使用了七个中间件 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middlew
资源推荐
资源详情
资源评论
django框架中间件原理与用法详解框架中间件原理与用法详解
本文实例讲述了django框架中间件原理与用法。分享给大家供大家参考,具体如下:
中间件:轻量级,介于 request和response之间的一道处理过程,在全局上改变了输入和输出
在django中就默认使用了七个中间件
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',
]
通过我们查看django的源码可以知道,中间件的使用方法有如下几种
process_request(self,request)
process_view(self,request,callback,callback_args,callbackkwargs)
process_template_response(self,request,response)
process_exception(self,request,exception)
process_response(self,request,response)
下面我们来通过自定义中间件来理解它们之间的顺序
1 最基本的一个中间件有两种方法:process_request process_response
在project下面写一个py文件作为中间件文件
#my_middleware.py
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import redirect,HttpResponse,render
class Md1(MiddlewareMixin):
def process_request(self,request):
print("Md1请求")
def process_response(self,request,response):
print("Md1返回")
return response
class Md2(MiddlewareMixin):
def process_request(self,request):
print("Md2请求")
def process_response(self,request,response):
print("Md2返回")
return response
接着我们按照顺序分别加入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',
'my_middleware.Md1',
'my_middleware.Md2',
]
定义一个views函数
def index(request):
print("view视图")
return HttpResponse("执行了view函数")
执行结果:(并且页面正常显示)
Md1请求
Md2请求
资源评论
weixin_38614268
- 粉丝: 6
- 资源: 950
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python相关项目设计资源-markdown技术材料.zip
- ErrAssertionFailed(解决方案).md
- Python爬虫开发相关资源-markdown技术材料.zip
- ErrSystemCallFailed(解决方案).md
- OverheatingProtectionException.md
- 安卓开发资源-markdown技术材料.zip
- 1 jupyter.ipynb
- Beyond Compare 5.0.4.30422
- 基于SSH框架(Struts2.5、Spring4.2、Hibernate5)的题目查询系统.zip
- Multisim 14.0 安装教程:从下载到使用的完整指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功