美文网首页
Django-中间件

Django-中间件

作者: 测试探索 | 来源:发表于2022-09-19 18:05 被阅读0次

Django中的中间件是一个轻量级,底层的插件系统,可以介入django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。

一、中间件的定义方法

Django在中间件中预置了六个方法,这六个方法,会在不同的阶段自动执行,对输入或输出进行干预。

1-1:初始化方法

启动Django程序,初始化中间件时,自动调用一次,用于确定是否启用当前中间件

def __init__(self,get_response=NOne):
    pass
1-2:处理请求前的方法

在处理每个请求前,自动调用,返回None或HttpResponse对象

def process_request(self,request):
    pass
1-3:处理响应后的方法

在每个响应返回给客户端之前,自动调用,返回HttpResponse对象

def process_response(self,request,response):
    pass

二、实际应用

在子应用book下创建中间件文件middleware.py文件

from django.utils.deprecation import MiddlewareMixin


class TestMiddleware(MiddlewareMixin):
    def process_request(self,request):
        print("每次请求前,都会调用执行")
        username = request.COOKIES.get('name')
        if username is None:
            print("无用户信息")
        else:
            print("有用户信息")


    def process_response(self,request,response):
        print("每次响应前都会调用执行")
        return response

在settings.py文件中进行注册

image.png
请求url:http://127.0.0.1:8000/set_cookie/?username=itcast,设置cookie
image.png
image.png
再次请求url:http://127.0.0.1:8000/get_cookie/,获取cookie
image.png
image.png

相关文章

  • django-中间件

    定义:每一个请求都是先通过中间件中的process_request函数,这个函数返回None或者HttpRespo...

  • Django-中间件

    Django中的中间件是一个轻量级,底层的插件系统,可以介入django的请求和响应处理过程,修改Django的输...

  • [原](05)Django-创建我的网页

    Django-创建我的网页 源码地址:https://github.com/edrainann/Django_we...

  • Web应用框架

    Django-提供了构建Web系统的基本应用框架-MTV模式: 模型(model), 模板(Template), ...

  • 2018-04-25

    Django-上传图片 1. 模型定义中将属性定义成 models.ImageField 类型 pic=model...

  • Django-分页

    Django-分页 1.创建对象 Paginator 对象的 page()方法返回 Page 对象,不需要手动构造...

  • django起航2-初始模板

    Django-模板 在应用目录blog下创建templates目录(必须是这个,记得加s) 在templates中...

  • Django-分页

    django-分页 一.django自带的分页 以读取UserInfo表为例 1.导入模块 from django...

  • 前言: Django-企业级开发框架

    Django-介绍 它是一个Python Web框架, 在众多Python Web框架中,它是应用最广泛的,发展最...

  • 翻译

    Laravel 的路由中间件 简介 创建中间件 注册中间件全局中间件为路由指定中间件中间件组 中间件参数 Term...

网友评论

      本文标题:Django-中间件

      本文链接:https://www.haomeiwen.com/subject/agmdortx.html