flask系列3-上下文

2019-07-10  本文已影响0人  蕴重Liu

Flask使用上下文临时把某些对象变为全局可访问
上下文分为:应用上下文(app)和请求上下文(request)。

Flask在分发请求之前激活(或推送)程序和请求上下文,请求处理完成后再将其删除。

请求上下文request和应用上下文current_app都是一个全局变量。所有请求都共享的。
Flask有特殊的机制可以保证每次请求的数据都是隔离的,即A请求所产生的数据不会影响到B请求。

from flask import request

    def post(self):
        '''读取excel'''
        file = request.files['file']
        course_svc.read_excel(file.read())
        return

request对象当且仅当在其上下文的生命周期内才有效,离开了请求的生命周期,其上下文环境不存在,也就无法获取request对象

from flask import Flask
from app.score.api import ScoreList, Score

app = Flask(__name__)
api = Api(app)

url_prefix = '/api/bs/'

api.add_resource(ScoreList, url_prefix + 'score-list')
api.add_resource(Score, url_prefix + 'score')

if __name__ == '__main__':
    app.run(host=config.APP_HOST, port=config.APP_PORT, threaded=True)

从一个 Flask App 读入配置并启动开始,就进入了 App Context,在其中我们可以访问配置文件、打开资源文件、通过路由规则反向构造 URL。

源码相关参考:https://www.jianshu.com/p/7a7efbb7205f

上一篇下一篇

猜你喜欢

热点阅读