与WSGI中的中间件相关的一段代码的解释
来源:互联网 发布:mac大型单机游戏知乎 编辑:程序博客网 时间:2024/05/22 01:50
理解下面的几行代码:
先看看partial函数的定义:
说明partial函数返回了一个新的函数地址,执行时实际上是调用了传给partial的第一个参数。
再返回到第一段代码,在第4行中第一个参数ThreadControl是调用对象,后面的thread_mapping是传递给ThreadControl的参数,但是这时还没有生成ThreadControl类的实例。依次调用时第7行中的middleware就是一个新的函数地址了,这个函数已经有了一个参数,即thread_mapping,到14行时调用了这个新的函数,同时又给它传递了另外一个参数,即wsgi,当然这里的wsgi也是一个函数地址。这样ThreadControl类初始化需要的两个参数都齐全了,到这里才生成ThreadControl类的实例。所以在第16行返回的是ThreadControl类的实例。当这个实例被调用时(比如flup的fcgi_base.py中的result = self.application(environ, start_response)),就会执行21行的__call__函数,这样就完成了中间件的功能。记住传进来的func是一个函数wsgi,所以func可以被调用,因为wsgi的定义需要两个参数env和start_resp,所以23行调用时也要传给func两个参数。
- 与WSGI中的中间件相关的一段代码的解释
- WSGI中间件是有害的
- 一段Ruby代码的解释
- python中的__call__的个人理解(wsgi实例解释)
- 一段业务相关的解析代码
- main中执行shellcode的一段代码的解释
- 关于com解释的一段代码,你懂的
- VC编译的除法的一段汇编代码解释
- 解释一段java关于同步锁synchronized代码的结果
- 一段代码解释retain,strong和copy的区别
- WSGI的理解与示例
- python当中的wsgi相关包
- C++中的类所占内存空间总结(其中有一段关于成员函数处于代码段的解释)
- 一段PHP加密与解密的代码
- 简单的概率相关的一段php代码
- javascript中的对象、方法的相关解释
- 一段不可思议的代码
- 一段写晕掉的代码
- ESB
- Java数据结构01链表——《精华》
- 一周的总结—只有意识的自己的差距才能进步
- 通过C++程序调用cmd并进入指定路径
- 生成shellcode
- 与WSGI中的中间件相关的一段代码的解释
- 面向站长和网站管理员的Web缓存加速指南[翻译]
- 重命名文件或文件夹
- Desperate Housewife 1-2
- tcpdump 使用手册
- 为什么buzzword很重要——《程序员》2010第5期卷首语
- CString——GetBuffer的用法例子
- 没人和我有共同语言,因为我学的是c Sharp!
- Mathematica 金元宝