400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Django中间件

django的中间件可以在视图函数执行前执行,比如登陆验证、日志记录等,下面简单说明一下中间件的基础用法,主要为笔者学习时的笔记

创新互联-专业网站定制、快速模板网站建设、高性价比长阳网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式长阳网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖长阳地区。费用合理售后完善,10多年实体公司更值得信赖。

1. 在django项目文件夹下创建一个用于存放中间件函数的文件夹

文件夹的名字可自定义,本文使用utils作为文件夹名

2. 在utils文件夹中创建中间件py文件

如用于登陆验证的中间件loginCheck.py

from django.http import HttpResponseRedirect
from django.utils.deprecation import MiddlewareMixin

class 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()

Exception后处理函数:process_exception(self, request, exception)

Response后处理函数:process_response(self, request, response)

参考资料:https://baijiahao.baidu.com/s?id=1622776730103957680


分享名称:Django中间件
标题来源:http://mzwzsj.com/article/ipdjjd.html

其他资讯

让你的专属顾问为你服务