美文网首页
flask系列3-上下文

flask系列3-上下文

作者: 蕴重Liu | 来源:发表于2019-07-10 17:57 被阅读0次

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

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

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

  • request:请求上下文上的对象。这个对象一般用来保存一些请求的变量。比如method、args、form等。
  • session:请求上下文上的对象。这个对象一般用来保存一些会话信息。
  • current_app:返回当前的app。
  • g:应用上下文上的对象。处理请求时用作临时存储的对象。
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

相关文章

网友评论

      本文标题:flask系列3-上下文

      本文链接:https://www.haomeiwen.com/subject/bwxkkctx.html