Django自定义中间件简单介绍

第一步:项目的settings.py文件中

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
    # 自定义中间件
     'Middle.test.TestMiddleware',
)

注意:中间件的顺序,这个中间件调用是有顺序的,详细的顺序自行百度查找

第二步: 在项目的目录中创建一个python package类型的文件夹(Middle),在此文件夹中新建一个python文件(TestMiddleware.py)

# -*- coding:utf-8 -*-
# __author = 'Suny'


class TestMiddleware(object):


    def process_request(self, request):
        """
        发起http请求时会执行此函数的内容
        :param request:
        :return:
        """
        print '中间件请求!'

    # http请求响应时会执行此函数的内容
    def process_response(self, request, response):
        print '中间件响应 !'
        return response

    def process_exception(self, request, exception):
        """
        视图函数中有报错信息时执行此函数的内容
        :param request:
        :param exception:
        :return:
        """
        print '视图报错中间件返回信息 !'
        return exception

    def process_view(self, request, callback, callback_args, callback_kwargs):
        """
        request请求完了后,再返回执行第一个view直到最后一个view
        :param request:
        :param callback:
        :param callback_args:
        :param callback_kwargs:
        :return:
        """
        print '中间件view !'

    def process_template_response(self, request, response):
        '''
        视图函数的返回值中,如果有render方法,才被调用
        :param request:
        :param response:
        :return:
        '''
        print '视图中有render方法, 中间件返回render'
        return response

第三步: 项目app的urls.py中添加一个url

urlpatterns = [
    url(r'^article/$', app01_view.article, name='article'),
]

第四步: 项目app的views.py中添加一个视图函数

def article(request):
    print '执行article !'
    return render(request, 'article.html')

注意:这里只是简单的介绍,更详细的自定义中间件(Middleware)和具体需要处理的问题还是要根据自己项目的需求


注意:以上内容是个人使用的随手记录, 就是介绍了下简单的使用

欢迎大家来吐槽,准备好瓜子饮料矿泉水,开整!!!

---------------------------------------------------------------------------------------

搞笑一则:能动手尽量别吵吵

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值