前言:
最近工作中需要用到请求中间件拦截前端特定的请求url,处理请求数据。这里简要记录一下中间件的使用流程。
开发环境:
- python版本 2.2.10
- django版本 1.8.2
django中间件的使用流程:
1.在对应的app应用下新建中间件文件夹并编写中间件py脚本;
2.在settings.py中注册中间件;
一、编写中间件py脚本
1.说明:
实现process_request方法即可进行请求拦截
2.拦截思路:
1.通过获取请求url路径,根据路径关键字符串来判断是否为需要拦截的请求;
2.若为拦截的请求,则进行相关的业务逻辑处理;
3.若不需要拦截,则返回None
3.代码示例:
# coding:utf-8
"""
请求中间件的简单使用
该py文件所在项目路径:myapps/middleware/mymiddleware.py
"""
import json
from django.http import HttpResponse
class MyMiddleware(object):
def process_request(self, request):
"""实现process_request方法即可实现拦截"""
# 获取请求url
request_url = request.get_full_path()
if request_url.find("middleware") != -1: # 拦截含有middleware关键字的url
print request_url
return HttpResponse(json.dumps({"success": True, "data": ['middleware']}), content_type='text/json',
status=200)
else:
return None
if __name__ == "__main__":
pass
二、在settings.py中注册中间件
# 在setting.py中注册该中间件
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
...
'myapps.middleware.mymiddleware.MyMiddleware' # 注册中间件(填写中间件所在的项目路径即可)
)