Django中间件基础用法详解
框架(架构)  /  管理员 发布于 7年前   261
前言
django的中间件可以在视图函数执行前执行,比如登陆验证、日志记录等,下面简单说明一下中间件的基础用法,主要为笔者学习时的笔记
1. 在django项目文件夹下创建一个用于存放中间件函数的文件夹
文件夹的名字可自定义,本文使用utils作为文件夹名
2. 在utils文件夹中创建中间件py文件
如用于登陆验证的中间件loginCheck.py
from django.http import HttpResponseRedirectfrom django.utils.deprecation import MiddlewareMixinclass UserLoginCheck(MiddlewareMixin): ''' 登录验证中间件 ''' def process_request(self, request): # 用户request请求前 path = ['/login/', '/logout/'] # 不需要进行登录检测的url if request.path in path: return userinfoSession = request.session.get('userinfo') if not userinfoSession: return HttpResponseRedirect('/login/') return
3. 配置使用中间件
在setting.py文件中配置中间件
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'utils.loginCheck.UserLoginCheck', # 此处为自定义的中间件]
扩展
中间件可定义的五种方法
Request预处理函数: process_request(self, request)
View预处理函数: process_view(self, request, callback, callback_args,callback_kwargs)
Template模版渲染函数:process_template_response()
默认不执行,只有在视图函数的返回结果对象中有render方法才会执行,并把对象的render方法的返回值返回给用户(注意不返回视图函数的return的结果了,而是返回视图函数 return值(对象)中rende方法的结果)
Exception后处理函数:process_exception(self, request, exception)
Response后处理函数:process_response(self, request, response)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号