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

Django中间件

中间件只是功能。

对于process_request方法:

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

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

# 自行创建一个文件名为 md.py

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

class 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中是否存储信息。

点个赞呗~

相关文章:

  • 产品NPDP+项目PMP助你成长
  • Day17—JavaScript与Ajax请求分析
  • 以sqlilabs靶场为例,讲解SQL注入攻击原理【42-53关】
  • [HGAME 2023 week4]shellcode
  • 在CSS中,可以使用`float`属性来设置元素浮动
  • Java--命令行传参
  • Elasticsearch 认证模拟题 - 15
  • Web前端不挂科:深入探索与实战指南
  • Python课设-学生信息管理系统
  • Rust-03-数据类型
  • 医疗器械网络安全风险管理的基本步骤
  • 结构化查询语言SQL
  • Unity与前端交互:深度解析与实战指南
  • 二、electron 的 BrowserWindow 的属性
  • WinForms 应用(.NET 8.0)使用ReportViewerCore.WinForms显示打印RDLC报表
  • 监控易监测对象及指标之:全面监控SQL Server 2008
  • shell简介
  • LLVM Cpu0 新后端4
  • linux暴力破解漏洞利用
  • 未来已来:Angular、React、Vue.js——前端框架的三大巨头
  • 2025五一档电影票房破7亿
  • 河南博物院:警惕非官方网络平台 “买讲解保进馆” 等虚假信息
  • 青海大学常务副校长(正厅级)任延明已任省卫健委党组书记
  • 竞彩湃|拜仁冲冠战役或有冷门,大巴黎留力欧冠半决赛
  • 民族音乐还能这样玩!这场音乐会由AI作曲
  • 2025年五一档电影票房破4亿,《水饺皇后》领跑