首页 > 其他分享 >中间件

中间件

时间:2023-06-01 15:12:18浏览次数:27  
标签:return process 中间件 self request response

定义中间件

from django.utils.deprecation import MiddlewareMixin


class M1(MiddlewareMixin):
    ''' 中间件1 '''

    def process_request(self,request):
        print('M1进来了')

    def process_response(self,request,response):
        print('M1走了')
        return response

class M2(MiddlewareMixin):
    ''' 中间件1 '''

    def process_request(self,request):
        print('M2进来了')

    def process_response(self,request,response):
        print('M2走了')
        return response

应用中间件

需要在setting.py文件中注册中间件

中间件实现登录的校验:

from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse, redirect


class M1(MiddlewareMixin):
    ''' 中间件1 '''

    def process_request(self,request):

        # 排除特定的URL
        # request.path_info  # 获取用户当前请求的URL
        if request.path_info =='/account/login/':  # 如果请求的URL为登录的URl:/admin/login/,就继续往下走
            return

        # 读取当前访问的用户的session信息。能读取到,说明已经登录过,就可以继续往后走
        info_dict =request.session.get("info")
        if info_dict:
            return
        # 没有登录过
        return redirect('/account/login/')

  

 

标签:return,process,中间件,self,request,response
From: https://www.cnblogs.com/xujunhui/p/17449040.html

相关文章

  • 《可伸缩服务架构-框架与中间件》-00-随笔计划
    初步计划大约花费9*5天时间精细阅读本书。目标输出:每个篇章输出一篇随笔,分析架构和逻辑内容。第一章:分布式发号器(5月31号--6月4号)第二章:消息队列(6月5号--6月9号)第三章:数据库分库分表(6月10号--6月14号)第四章:缓存(6月15号--6月19号)第五章:ES(6月20号--6月24号)第六章:定制任务(6月2......
  • 《可伸缩服务架构-框架与中间件》-01-分布式发号器
    本文主要是设计一款永不重复的高性能分布式发号器。源码地址——码云:https://gitee.com/robertleepeak/vesta-id-generatorVesta是一款通用的ID产生器,互联网俗称统一发号器,它具有全局唯一、粗略有序、可反解和可制造等特性,它支持三种发布模式:嵌入发布模式、中心服务器发布模式、......
  • thinkphp正确开发系列:使用全局中间件统计当天活跃用户
    背景:pv、uv大家应该了解,不懂得搜索一下就知道了,现在有这么一个需求:统计当天有哪些用户登录了系统,也即:同一个用户,在一天之内第一次登录系统,记为1次,一天之内的后续登录(在登录状态刷新页面)忽略,项目使用的是thinkphp6,前后端分离架构。 实现方案:我们知道,php的开发框架,如:laravel、t......
  • 详解大数据中必不可少的消息中间件 kafka(3.x 新版本)
    楔子本次来聊一聊kafka,相信大家都知道它是一个应用于大数据实时领域、基于发布/订阅模式的分布式消息中间件(或者说消息队列),能够和不同的进程进行通信,从而实现上下游之间的消息传递。有了消息队列之后,上游服务和下游服务就无需直接通信了,上游服务将消息发送到队列中,下游从队列中......
  • 普加项目管理中间件示例之三:自定义单元格样式,行样式,以及单元格内容
    通过监听处理"drawcell"事件,可以根据任务信息,设置行、单元格样式,以及自定义单元格Html内容。参考示例demo/DiyDisplay.html。代码如下:project.on("drawcell",function(e){vartask=e.record,column=e.column,field=e.field;//单元格样式if(column.name......
  • 普加项目管理中间件示例之四:自定义单元格可编辑
    通过监听处理"cellbeginedit"事件,可以控制每个行、每个单元格是否可编辑。参考示例:demo/DiyEditable.html代码如下://控制单元格是否可编辑project.on("cellbeginedit",function(e){vartask=e.record,column=e.column,field=e.field;//控制行,摘要任务不可编辑if......
  • 普加项目管理中间件示例之五:自定义条形图外观和提示信息
    可以通过监听drawitem事件来控制右侧条形图的html外观,达到任意的条形图效果。示例地址:demo/DiyDisplayGantt.html代码如下://1)自定义条形图外观显示project.on("drawitem",function(e){varitem=e.item;varleft=e.itemBox.left,top=e.itemBox.top,......
  • 普加项目管理中间件示例之六:自定义右键菜单
    弹出右键菜单时,根据当前选择的行,显示隐藏、启用禁用菜单项。示例地址:demo/DiyMenu.html代码如下://右键菜单弹出varmenu=newProjectMenu();project.setContextMenu(menu);menu.edit.on("click",function(e){ShowTaskWindow(project);});//监听菜单的opening事件,此......
  • 高可用中间件之Keepalived的原理介绍与部署实践
    (文章目录)前言Keepalived是一个用c语言编写的路由软件。这个实验的主要目标是为Linux系统和基于Linux的基础设施提供简单而健壮的负载平衡和高可用性工具。keepalive实现了一组检查器,可以根据服务器的运行状况动态地、自适应地维护和管理负载平衡的服务器池。另一方面,通过VRRP......
  • 普加项目管理中间件示例之一:标准列
    官方提供了一下这些标准的列:列名任务属性描述PlusProject.IDColumnID任务序号。PlusProject.WBSColumnWBSWBS编码。PlusProject.NameColumnName任务名称。PlusProject.DurationColumnDuration工期。PlusProject.StartColumnStart开始日期。PlusProject.FinishColumnFinish完成日期......