当前位置: 首页 > news >正文

Django中间件

中间件只是功能。

对于process_request方法:

  • 无返回或返回None,请求继续向后走
  • 有返回值,return directreturn HttpResponsereturn render,不会继续向后走,直接执行process_response函数

可以自己定义属于自己的中间件。

# 自行创建一个文件名为 md.pyfrom django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse, redirectclass MiddlewareDemo(MiddlewareMixin):def process_request(self, request):# 无需做验证,放行if request.path_info in ['/example'/]:return # 获取用户session的信息userInfo = request.session.get("userInfo")# 有值,表示已登录,则继续if userInfo:return# 无值return redirect('/example/')def process_response(self, request, response):# 必须得返回return response

创建好自定义的Middleware之后,需要在settings.py里植入。

MIDDLEWARE = [....# 添加下面一行"utils.md.MiddlewareDemo",
]

中间件的应用场景

  • 日志,获取访问时,请求的 IP 地址并记到文件中。
  • 权限校验,有权限返回None,无权限就返回HttpResponse("无权访问")
  • 登录判定,判断用户的session中是否存储信息。

点个赞呗~

相关文章:

  • K8s:无状态
  • 排序---快速排序
  • msfconsole利用Windows server2008cve-2019-0708漏洞入侵
  • c#未能加载基类System错误 这台计算机上缺少此项目引用的 NuGet 程序包
  • HikariCP连接池初识
  • 基于机器学习的锂电池RUL SOH预测
  • 【JavaScript脚本宇宙】表格大变身:探秘JavaScript库的数据表格魔法
  • 设计模式七大原则-单一职责原则SingleResponsibility
  • 卡码网用友提前批笔试 | 121 大数减法、122 滑动窗口最大值、117 软件架构
  • Selenium IDE 工具
  • Python框架scrapy有什么天赋异禀
  • 技术前沿 |【大模型InstructBLIP进行指令微调】
  • PostgreSQL的视图pg_tables
  • 【Java】Java流中的API
  • 通用信息提取数据预处理
  • 4个实用的微服务测试策略
  • ES6--对象的扩展
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • JAVA之继承和多态
  • js作用域和this的理解
  • Logstash 参考指南(目录)
  • Swoft 源码剖析 - 代码自动更新机制
  • vue自定义指令实现v-tap插件
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 基于web的全景—— Pannellum小试
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 聊聊directory traversal attack
  • 入门到放弃node系列之Hello Word篇
  • 为什么要用IPython/Jupyter?
  • 详解移动APP与web APP的区别
  • 学习笔记:对象,原型和继承(1)
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 翻译 | The Principles of OOD 面向对象设计原则
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (二)windows配置JDK环境
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (六)Hibernate的二级缓存
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)可以带来幸福的一本书
  • (转)详解PHP处理密码的几种方式
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Standard 的管理策略
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .NET正则基础之——正则委托
  • ??Nginx实现会话保持_Nginx会话保持与Redis的结合_Nginx实现四层负载均衡
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @Autowired自动装配