Flask 之入门
Flask 是一个基于 Python 开发并且依赖 jinja2 模板和 Werkzeug WSGI 服务的一个微型框架,对于 Werkzeug 本质是 Socket 服务端,其用于接收 http 请求并对请求进行预处理,然后触发 Flask 框架,开发人员基于 Flask 框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助 jinja2 模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器.
Werkzeug 之初体验
WSGI(全称 web Server Gateway Interface),是为 Python 语言定义的 Web 服务器和 Web 应用程序之间的一种简单而通用的接口,它封装了接受 HTTP 请求,解析 HTTP 请求,发送 HTTP,响应等等的这些底层的代码和操作,使开发者可以高效的编写 Web 应用.
WSGI-APP
Flask 之基本
from werkzeug.wrappers import Request, Response
from werkzeug.serving import run_simple
@Request.application
def hello(request):
return Response('Hello World!')
if __name__ == '__main__':
run_simple('localhost', 4000, hello)
Flask 之 Context(上下文)
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
Flask 提供了两种上下文,一种是应用上下文 (Application Context),一种是请求上下文 (Request Context).
简单的解释一下 application context 与 request context:
application 指的就是当你调用 app = Flask(name) 创建的这个对象 app;
request 指的是每次 http 请求发生时,WSGI server(比如 gunicorn) 调 Flask.call() 之后,在 Flask 对象内部创建的 Request 对象;
application 表示用于响应 WSGI 请求的应用本身,request 表示每次 http 请求;
application 的生命周期大于 request,一个 application 存活期间,可能发生多次 http 请求,所以,也就会有多个 request
Flask__call__方法调用解析
文字解释比较繁琐, 还是直接上图吧.
简单流程
如有疑问可以随时探讨. 谢谢观看. 点一下关注呗 >
来源: http://www.jianshu.com/p/0285833248c7