昨天跟大家介绍完middleware的基本建立後,大家有没有理解并成功做出来呢!
如果对於这部分还有一点疑惑,记得可以去支持下那位作者介绍的文章!
而除了我们昨天介绍的那个方法之外,其实我们如果仔细看Django middleware的官方文件的话,它其实还会有额外的三种方式可以自订自己的middleware。
分别是:
以下是他们的范例程序码:
def process_view(self, request, view_func, view_args, view_kwargs):
# process_view() is called just before Django calls the view.
# It should return either None or an HttpResponse object
logger.warning('---- 2 ----')
return None
def process_exception(self, request, exception):
# Django calls process_exception() when a view raises an exception
# It should return either None or an HttpResponse object
logger.warning('---- exception.args ----')
return None
def process_template_response(self, request, response):
# return TemplateResponse object
logger.warning('---- 3 ----')
return response
第一个函数process_view(),我们如果看官方文件的解释的话,你会看到以下这句:
process_view() is called just before Django calls the view.
它最主要的意思就是说,会在你呼叫views里的东西之前先呼叫这个函数。
所以如果我们的middleware加上这行,重run一遍後就会在-1-的後面先run到这个函数再回到原本的函数。
第二个函数process_exception(),它的官方文件解释是:
Django calls process_exception() when a view raises an exception.
这函数就是在你的程序出现错误像是(数字除以零)这种exception它就会直接run到这个函数。
需要注意的是,即使它因为错误所以出现错误码後,最後面依然会跑回原本的函数里。
第三个函数process_template_response(),它的官方解释是:
process_template_response() is called just after the view has finished executing, if the response instance has a render() method, indicating that it is a TemplateResponse or equivalent.
这函数主要的用法就是当你return的东西是TemplateResponse的话,就会跑到这个函数里面再回去。
了解这三个比较特殊的函数後,可以根据你自己的需要来制作middleware。
到这边基本的middleware函数就大概介绍完了,那我们今天就先到这边吧!
大家掰掰!!
<<: Day25 来人上菜! 给我来点Cookie and Session
>>: [Day 26] - 『转职工作的Lessons learned』 - Cube.js(II)
今天下班後去学校上课 回到家後就11点多了...... 就简单说明关於Gophish操作可能遇到的几...
JAVA是一个大家既熟悉又陌生的程序语言 稍微知道怎麽编写但会写错,也可能写还不知道怎麽储存,还有不...
图 6-1: 各栏位资料范例 发送给 Order API 的栏位资料只差 Message 栏位了。...
在那个用记事本写HTML的年代 (讲古时间) 大叔我在1996年五专入学念资管系,一年级就接触到网页...
因为 Ktor 本身只有实作 Authentication 机制,不像 Spring Securit...