django请求中间件的使用

前言:

最近工作中需要用到请求中间件拦截前端特定的请求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' # 注册中间件(填写中间件所在的项目路径即可)
)

你可能感兴趣的:(django请求中间件的使用)