美文网首页Python
django请求中间件的使用

django请求中间件的使用

作者: white_study | 来源:发表于2019-01-05 21:01 被阅读0次
    前言:

    最近工作中需要用到请求中间件拦截前端特定的请求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请求中间件的使用

        本文链接:https://www.haomeiwen.com/subject/dibdrqtx.html