flask面试题

1. 为什么要创建两个Local?或两个LocalStack?
- 编写离线脚本时,需要配置文件,而配置文件存放在app中。
- 编写离线脚本时,不需要请求相关的数据。

所以,将app和请求相关的数据分开:
- 应用上下文(app,g)
- 请求上下文(request,session)

 

2.web运行时(web runtime):

请求Local = {
1111:{
stack:[ctx1,]
},
1112:{
stack:[ctx2,]
}
}

应用Local = {
1111:{
stack:[app_ctx1,]
}
1112:{
stack:[app_ctx2,]
},
}

 1 from flask import current_app
 2 app1 = create_app()
 3 app_ctx1 = app1.app_context() # app_ctx = app/g
 4 
 5 app2 = create_app()
 6 app_ctx2 = app2.app_context() # app_ctx = app/g
 7 
 8 with app_ctx1: # __enter__,通过LocalStack放入Local中
 9     print(current_app) # app1
10     with app_ctx2:
11         print(current_app) # app2
12         
13     print(current_app) # app1
14 
15 """
16 请求Local = {
17 }
18 
19 应用Local = {
20     1111:{
21         stack:[app_ctx1,app_ctx2]
22     }
23 }
24 """
多app离线脚本

 

posted @ 2019-03-30 18:21  甜麦地  阅读(298)  评论(0编辑  收藏  举报