1. 多APP應用
請求進來時,可以根據URL的不同,交給不同的APP處理。一般用藍圖也可以實現。一般不寫多app應用。
from werkzeug.wsgi import DispatcherMiddleware
from werkzeug.serving import run_simple
from flask import Flask, current_app
app1 = Flask('app01')
app2 = Flask('app02')
@app1.route('/index')
def index():
return "app01"
@app2.route('/index2')
def index2():
return "app2"
# localhost/index -- http://www.baidu.com/index
# localhost/sec/index2 -- http://www.baidu.com/sec/index2
dm = DispatcherMiddleware(app1, {
'/sec': app2,
})
if __name__ == "__main__":
app2.__call__
run_simple('localhost', 5000, dm)
看DispatcherMiddleware的源碼,看app2.__call__源碼
原理其實就是URL分割,然后請求分發給指定的app。然后請求分配給制定的app,之后app也按單app的流程走。就是從app.__call__走。