代码样例
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World"
if __name__ == "__main__":
app.run()
分析所谓的wsgi应用,wsgi应用一定要有call函数。这样最后才能被wsgi调用,并将wsgi应用处理的结果处理加工,返回给web服务器。
针对上面的deamon样例进行简单的flask框架分析
所谓的web框架就是处理由web服务器接收并传递过来的http请求的一系列逻辑操作。flask自己本身就是一个wsgi应用,他的def dispatch_request(self):函数就是根据url去调用对应的视图函数处理request请求,具体体现在self.view_functionsrule.endpoint,self.view_functions(是一个字典)从哪儿来的呢,是通过self.add_url_rule函数去填充view_functions自己的值(将路径作为key,视图函数作为value值,添加到view_functions的字典),谁去调用self.add_url_rule呢,答案就是app.route函数,也就是我们经常用的装饰器啦。
那deamon中,web器在哪儿呢,其实就是app.run啦,从源码中我们就可以看到啦。
网友评论