广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django 中间件 请求前
  • 174
分享到

Django 中间件 请求前

中间件Django 2023-01-30 23:01:27 174人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

中间件: class TestMiddleware(object): """中间件类""" def __init__(self): """服务器重启之后,接收第一个请求时调用""" pas

中间件:

class TestMiddleware(object):
    """中间件类"""
    def __init__(self):
        """服务器重启之后,接收第一个请求时调用"""
        pass
    
    def process_request(self, request):
        """产生request对象之后,url匹配之前调用"""
        pass
    
    def process_view(self, request, view_func, *view_args, **view_kwargs):
        """url匹配之后,视图函数调用之前调用"""
        pass
    
    def process_exception(self, request, exception):
        """视图函数发生异常时调用"""
        pass
    
    def process_response(self, request, response):
        """视图函数调用之后,内容返回浏览器之前调用"""
        return response

 

正常调用顺序是从上往下,但如注册了多个中间件类中包含 process_exception函数的时候,process_exception函数调用的顺序跟注册的顺序是相反的,下面两张图说明:

 

 

流程图:

 

注意:process_response之前的中间件如无返回,则默认返回 None,会继续执行下一个中间件,但如有返回,则直接跳到 process_response中间件

 

 

 

例子:

1.

在app内新建一个 middleware.py 文件

2.

from Django.Http import HttpResponse

class BlacklistIPSMiddleware(object):
    """中间件类"""
    EXCLUDE_IPS = ['192.168.1.1']
    
    def process_view(self, request, view_func, *view_args, **view_kwargs):
        """视图函数调用之前会调用"""
        user_ip = request.META['REMOTE_ADDR'] # 获取访问用户的IP
        if user_ip in BlacklistIPSMiddleware.EXCLUDE_IPS:
            return HttpResponse('您在黑名单中')

3.

在settings配置文件中注册中间件类

# 'app名.中间件文件名.中间件类名'

MIDDLEWARE_CLASSES = (...,

              ...,

             ‘book.middleware.BlacklistIPSMiddleware’)

 

--结束END--

本文标题: Django 中间件 请求前

本文链接: https://www.lsjlt.com/news/180885.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django 中间件 请求前
    中间件: class TestMiddleware(object): """中间件类""" def __init__(self): """服务器重启之后,接收第一个请求时调用""" pas...
    99+
    2023-01-30
    中间件 Django
  • Django框架CBV装饰器中间件auth模块CSRF跨站请求问题
    CBV添加装饰器 给CBV添加装饰器有三种方法,三种方法都需要导入模块: from django.utils.decorators import method_decorator...
    99+
    2022-11-12
    Django CBV装饰器 CSRF跨站请求
  • Django 中间件
    目录 一.中间件 二.中间件用途 三.中间件方法 四.自定义中间件 process_view proc...
    99+
    2023-01-30
    中间件 Django
  • django中间件-12
    目录 自定义中间件 函数定义 类定义 中间件的执行顺序 在django中,中间件其实...
    99+
    2023-01-30
    中间件 django
  • Django之中间件
    中间件介绍   中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。   但是由于其影响的是全局,所以需要谨慎使...
    99+
    2023-01-30
    中间件 Django
  • vue请求时间太长_接口处理请求时间过长,前台响应“服务器超时”的解决办法
    一、增加请求超时时间: 在发送请求时,设置适当的超时时间,以延长前端等待服务器响应的时间。可以使用 Axios 库发送请求并设置 timeout 参数来指定超时时间。 import axios fro...
    99+
    2023-09-15
    vue.js 服务器 前端
  • Python中Flask请求扩展与中间件的示例分析
    小编给大家分享一下Python中Flask请求扩展与中间件的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、请求扩展1.before_request作用: 类比django中间件中的process_request...
    99+
    2023-06-15
  • Django中间件的使用
    中间件(middleware) 中间件应用于request与服务端之间和服务端与response之间,客户端发起请求到服务端接收可以通过中间件,服务端返回响应与客户端接收响应可以通过中间件,也就是说中间件可以处理request和resp...
    99+
    2023-01-30
    中间件 Django
  • vue中使用axios固定url请求前缀
    目录使用axios固定url请求前缀定义axios默认路径前缀或动态修改前缀总结使用axios固定url请求前缀 main.js中添加: 使用方法: 定义axios默认路径前缀...
    99+
    2022-12-09
    vue使用axios vue url请求前缀 axios固定url请求前缀
  • Python Flask请求扩展与中间件相关知识总结
    一、请求扩展 1.before_request 作用: 类比django中间件中的process_request,在请求到来执行路由函数之前先执行. 但是如果有多个顺序是从上往下执行...
    99+
    2022-11-12
    Flask请求扩展 Flask中间件
  • laravel怎么使用中间件记录用户请求日志
    这篇文章主要讲解了“laravel怎么使用中间件记录用户请求日志”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“laravel怎么使用中间件记录用户请求日志”吧!一、创建中间件可以使用命令创建...
    99+
    2023-06-30
  • Django的中间件是什么
    本篇内容主要讲解“Django的中间件是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Django的中间件是什么”吧!什么是中间件(middleware) django 中的中间件(midd...
    99+
    2023-06-04
  • Django——中间件设置缓存
    如图所示查看网站缓存时间 在app中创建middleware.py文件,导入MiddlewareMixin,创建类并继承MiddlewareMixin 在settings中的MIDDLEWARE=[ ] 注册中间件类;添加一个CAC...
    99+
    2023-01-30
    缓存 中间件 Django
  • 使用Flask和Django中解决跨域请求问题
    Flask解决跨域 1、下载flask_cors包 pip install flask-cors 2、使用flask_cors的CORS 代码示例 from flask_c...
    99+
    2022-11-12
    Flask Django 跨域请求
  • CSS中怎么控制前端图片HTTP请求
    这篇文章将为大家详细讲解有关CSS中怎么控制前端图片HTTP请求,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 隐藏图片XML/HTML Code复制内...
    99+
    2022-10-19
    http css
  • PHP中运用路由中间件实现请求的过滤与处理
    随着互联网技术的快速发展和应用的普及,网站和应用的开发也变得愈发复杂。为了提高开发效率和代码的可维护性,开发者们通过引入中间件的概念来处理请求的过滤与处理。在PHP中,使用路由中间件可以轻松实现请求的过滤与处理,并且能够高度定制、灵活应对各...
    99+
    2023-10-21
    PHP 路由中间件 请求过滤
  • PHP中使用路由中间件实现请求的过滤与处理
    随着Web应用的发展,处理请求的方式也在不断演进。传统的方式是将所有的请求通过一个单一的处理入口进行处理,这样不仅增加了入口文件的复杂度,也不便于对不同类型的请求进行细粒度的处理。为了解决这个问题,引入了路由中间件的概念。什么是路由中间件?...
    99+
    2023-10-21
    路由中间件 请求过滤 处理编程
  • PHP:laravel中间件和控制器的请求参数传递与获取
    目录 1、中间件和控制器测试2、安全隐患3、支持的传参方式4、总结5、一种更为安全的做法 接口开发中,通常我们需要在中间件里边做一些全局性的前置判断,获取请求中的公共参数,然后传递给...
    99+
    2023-09-10
    php laravel 开发语言
  • 怎么用gitignore中间件避免网络请求携带登录信息
    本文小编为大家详细介绍“怎么用gitignore中间件避免网络请求携带登录信息”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用gitignore中间件避免网络请求携带登录信息”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-07-02
  • day 63 Django基础九之中间件
        本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏      我们在前面的课程中已经学会了...
    99+
    2023-01-31
    中间件 基础 day
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作