美文网首页
dajngo中间件和装饰器的概念

dajngo中间件和装饰器的概念

作者: dd1991 | 来源:发表于2021-01-19 17:39 被阅读0次

一 原理

1. 装饰器,是利用闭包的原理去更改一个函数的功能,可以理解为让一个函数执行之前,去另外一个函数里面执行其他的语句,通常使用装饰器来管理权限,登录等。实现代码的重用性和耦合性。

2.中间件,是利用面向切片的编程思想。对django的服务器访问过程中实现干预。是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。

每个中间件组件是一个独立的Python类,可以定义下面方法中的一个或多个

_init _:无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件

process_request(request):执行视图之前被调用,在每个请求上调用,返回None或HttpResponse对象

process_view(request, view_func, view_args, view_kwargs):调用视图之前被调用,在每个请求上调用,返回None或HttpResponse对象

process_template_response(request, response):在视图刚好执行完毕之后被调用,在每个请求上调用,返回实现了render方法的响应对象

process_response(request, response):所有响应返回浏览器之前被调用,在每个请求上调用,返回HttpResponse对象

process_exception(request,response,exception):当视图抛出异常时调用,在每个请求上调用,返回一个HttpResponse对象使用中间件,可以干扰整个处理过程,每次请求中都会执行中间件的这个方法

二. 区别和联系

区别:一个是Python的语法功能,一个是Django 框架自带的轻量级插件系统。

联系:中间件是利用装饰器原理实现的,具体通过两个函数嵌套、或通过改写类中的__ call __方法实现一个装饰器功能。使之过来的Request的请求,先到call方法中进行处理。配置中间件,实现过程干预。

相关文章

  • dajngo中间件和装饰器的概念

    一 原理 1. 装饰器,是利用闭包的原理去更改一个函数的功能,可以理解为让一个函数执行之前,去另外一个函数里面执行...

  • Django 十一

    目录 1.cbv加装饰器 总结 2.中间件介绍和常用内置中间件 3.django内置中间件 4.django自定义...

  • python——装饰器详解

    一、装饰器概念 1、装饰器 装饰器:一种返回值也是一个函数的函数,即装饰器。 2、装饰器目的 装饰器的目的:装饰器...

  • 【中间件】

    什么是中间件 中间件,其实就是个钩子函数,相当于一个装饰器的作用,而django的中间件,主要是request和v...

  • 解惑,从新认识python装饰器

    概念 python有两种装饰器: 函数装饰器(function decorators) 类装饰器(class de...

  • 11 python 中的装饰器

    1 装饰器相关的概念 本质:装饰器的本质就是函数 功能:装饰器的功能是给其他函数添加装饰 实现装饰器的原则:(1)...

  • nestjs中间件

    什么是中间件 中间件是在路由处理程序之前调用的函数。 定义中间件: 在函数或者是具有@injectabnle装饰器...

  • python装饰器

    学习了闭包的概念之后,再来学习装饰器就简单很多。装饰器就是闭包的一个应用 代码举例 但是装饰器在使用时分加载态和调...

  • cbv加装饰器,中间件,csrf

    1. CBV加装饰器 2. 中间件 中间件是什么?请求和响应之间的一道屏障 中间件作用:控制请求和响应 djang...

  • Python 装饰器 续集

    前言: Python 装饰器 一节中,我们引入了装饰器的概念,以及常见的4中装饰器模型,本节我们会探索一下装饰器的...

网友评论

      本文标题:dajngo中间件和装饰器的概念

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