Flask 中请求上下文和应用上下文的区别和作用?

current_app、g 是应用上下文。
requests、session 是请求上下文。


手动创建上下文的两种方法:
1. with app.app_context() 2. app = current_app._get_current_object() 两者区别:
请求上下文:保存了客户端和服务器交互的数据。
应用上下文:flask 应用程序运行过程中,保存的一些配置信息,比如程序名、数据库连接、应用
信息等。


两者作用:
请求上下文(request context):
Flask从客户端收到请求时,要让视图函数能访问一些对象,这样才能处理请求。请求对象是一
个很好的例子,它封装了客户端发送的HTTP 请求。
要想让视图函数能够访问请求对象,一个显而易见的方式是将其作为参数传入视图函数,不过
这会导致程序中的每个视图函数都增加一个参数,除了访问请求对象,如果视图函数在处理请求时还
要访问其他对象,情况会变得更糟。为了避免大量可有可无的参数把视图函数弄得一团糟,Flask
使用上下文临时把某些对象变为全局可访问。


应用上下文(application context):
它的字面意思是 应用上下文,但它不是一直存在的,它只是requestcontext 中的一个对 app
的代理(人),所谓localproxy。它的作用主要是帮助 request 获取当前的应用,它是伴 request 而
生,随 request 而灭的。
 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值