django(二)中间件与面向切面编程

 一、中间件概念    

      django 自带函数可以在几个环节调节收到请求、处理请求、处理异常、以及发送请求。

      看这里给的链接好了,这是一个大佬的讲django中间件的博客,非常清楚:https://www.cnblogs.com/zhaof/p/6281541.html

      接下,我讲讲我使用的代码:

二、中间件示例

       

    1、先在应用下的目录(如上图),创建中间件文件“MyException.py”, 输入以下内容

from django.http import HttpResponse

#a middleware
class MyException(object):
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        return self.get_response(request)

    def process_exception(request, response, exception):
        return HttpResponse("This is an exception!")

     2、在主应用文件的Setting.py 的 "MIDDLEWARE " 中加入上面的文件名(得包括文件路径):booktest.MyException.MyException

             

   

    3、在应用的 view 文件中加入,这是一个会抛出异常的逻辑:

#create the middleware
def myExp(request):
    a1 = int('abc')
    return HttpResponse('hello')

    4、在应用的 url 文件中加入:

  url(r'^myexp/$', views.myExp)

三、运行应用,然后在浏览器访问该地址:http://127.0.0.1:8000/booktest/myexp/

       由于抛出异常,会得到如图

      

     这就是上面中间件文件定义的时候,抛出的异常的信息。

     完成了。

     

原文地址:https://www.cnblogs.com/Jomini/p/8583253.html