程序的本质就是指令+上下文。
作为一个 Web Application ,Flask 也必然有着自己的上下文。例如视图函数需要知道包括请求的方法,路径,参数等请求信息的上下文才能够正常的工作。如果你有过其它语言的编程经验,就会很容易想到通过在调用这些函数时在参数中传递相关的数据或这些数据的指针来为函数提供这些必要的上下文信息。如果这门语言支持 OOP ,那么这些请求相关的信息还可以被封装到请求的抽象类中。事实上,确实有不少框架是这样做的,例如 sanic 。但这样设计上下文的话,视图函数应该会长成这样
1 | # demo.py |
也就是说,视图函数应该有 request 这么一个参数才对,但从 Flask Demo 中我们并没有发现这样一个参数。显然,Flask 采用了另外一种不同的实现方式。


