• django之中间件


    django之中间件

      中间件

        概念:

      中间件是一个用来处理Django的请求响应的框架级别的钩子。他是一个轻量低级别插件系统,用于在全局范围内改变Django的输入和输出。每个中间件都负责一些特定的功能。

       再简单点说就是在视图函数执行之前执行之后都可以做一些额外的操作,它本质上是Django的一个自定义类,类中定义了一些方法,Django框架会在处理请求的特定的时间去执行这些方法。

      自定义中间件

      中间件可以定义五个方法,分别是:(重点是process_request和process_response)

        process_request(self, request)

        process_view(self, request, view_func, view_args, view_kwargs)

        process_template_response(self, request, response)

        process_exception(self, request, exception) 

        process_response(self, request, response)

      以上方法的返回值可以是None或者一个HttpRsponse对象。如果是None,则继续按照Django定义的规则向后继续执行;如果是HttpRsponse对象,则直接将该对象返回给用户。

        自定义一个中间件

     1 from django.utils.deprecation import MiddlewareMinxin
     2 
     3 class MD1(MiddlewareMixin):
     4 
     5     def process_request(self, request):
     6         print("MD1里面的process_request")
     7 
     8     def process_response(self, request, response):
     9         print('MD1里面的process_response')
    10 
    11         return response

      然后再settings中的MIDDLEWARE中注册下这个中间件就可以使用了.

      process_request有一个参数,就是request,这个request和视图中的request是一样的。它的返回值可以是None,也可以是HttpRsponse对象。返回值是None的话,按正常流程继续走,交给下一个中间件处理;如果是HttpRsponse对象,Django将不执行视图函数,而将响应对象返回给浏览器。

  • 相关阅读:
    KubeSphere 3.1.0 GA:混合多云走向边缘,让应用无处不在
    5.29 相约杭州!云原生 Meetup 第二期杭州站开启报名
    SQL查询每门课程的前几名
    JavaScript之构造函数
    wchar*与char *相互转换 [MultiByteToWideChar、WideCharToMultiByte函数用法]
    面试、笔试中常用的SQL语句(数据库知识必杀)一共50个!!!
    HTTP协议详解
    浅谈model, orm, dao和active record的区别
    ASP.NET 2.0中的跨页面提交
    YII框架yiic、gii工具使用方法
  • 原文地址:https://www.cnblogs.com/ZN-225/p/9800215.html
Copyright © 2020-2023  润新知