Flask上下文

1. 上下文概念与Flask上下文对象分类

        上下文: 即语境,语意, 在程序中可以理解为在代码执行到某一时刻时,根据之前代码所做的操作以及下文即将要执行的逻辑,可以决定在当前时刻下可以使用到的变量,或者可以完成的事情

Flask上下文对象分类:

1. 请求上下文: request session

2. 应用上下文: current_app g对象

2. 请求上下文之request与session

        request: 封装了HTTP请求的内容,针对的是HTTP请求,请求的数据封装在request对象中,比如查询参数,文件数据等

        session: 用来记录请求会话中的信息,针对的是用户信息

3. 应用上下文current_app与g对象

        current_app:事实上是Flask实例的代理,由于一个项目只能有一个app实例,在其他地方使用app需要导入,不方便使用,current_app就是APP的全局代理,在代码不方便操作flask的APP对象时,可以操作current_app就等价于操作APP实例

        current_app用于存储应用程序中的变量:

                1.  应用的启动脚本是哪个文件,启动时指定了哪些参数

                2.  加载了那些配置文件,导入了哪些配置

                3. 连接了哪个数据库

                4. 有哪些public的工具类, 常量

                5. 应用跑在哪个机器上,IP是多少,内存有多大等信息

        g对象:作为flask程序全局的一个临时变量, 充当中间媒介的作用, 我们可以通过它在一次请求调用的多个函数间传递一些数据, 相当与一个共享的数据容器, 每次请求都会重设这个变量
    

4. 手动开启上下文

        在flask程序为运行的请求下,调试代码或者进行测试,同杨需要使用current_app, g, request这些对象,但程序未运行,所以无法使用,此时需要手动开启上下文

        app_context为我们提供了应用上下文环境,允许我们在外部使用应用上下文current_app, g, 可以通过with语句进行使用

 request_context为我们提供了上下文环境,允许我们在外部使用请求上下文request、session可以通过with语句进行使用

                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值