对语法不太理解,求讲解

对语法不太理解,求讲解

def ip_middleware(get_response):
def middleware(request):

response=get_response(request)

return response

return middleware

1.用户请求先传入函数

def middleware(request):

2.执行response=get_response(request)后,代表视图函数已被调用。

​3.return response 这个response是返回到哪里去了?

4.def ip_middleware(get_response) 这里的get_response是从哪里传过来的?

5.return middleware是返回了什么?返回值也是response的值吗?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2021-01-13 14:08:25

同学,你好,

1、return response将response返回给调用者,可以理解为返回给上一个中间件。django按照定义在MIDDLEWARE中的顺序,从上往下执行中间件。请求是从上往下一层一层往下传递get_response,直到核心(view),响应则是反过来的顺序(由核心开始)

2、return middleware返回的是middleware函数

  • 提问者 慕粉1504263447 #1

    1.从上往下一层一层往下传递get_response,那第一层的get_response是哪里来的?

    2.return response将response返回给调用者,可以理解为返回给上一个中间件,那上一个中间件是怎么接收这个返回内容的?

    3.return middleware返回的是middleware函数,是返回给上一层的中间件吗?返回一个函数的作用是什么,实现什么功能?

    2021-01-13 14:52:47
  • 好帮手慕美 回复 提问者 慕粉1504263447 #2

    同学,你好,

    1、get_response是下一个需要处理的中间件或函数

    2、没有一个固定的变量去接收response,会一层一层向上返回

    中间件的执行过程同学了解就可以

    例:

    http://img1.sycdn.imooc.com//climg/5ffeaba509b576a309210469.jpg

    2、return middleware会返回上一层中间件,这是函数中间件的固定写法,即外层函数返回内层函数对象。和一阶段中讲解的装饰器写法是类似的。

    祝学习愉快~~~~

    2021-01-13 16:20:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师