关于上下文

context(上下文)是什么

发现很多人对context不能理解,这里对网上的几种理解方式进行整理和解答。

  • 把context成当前程序之前的状态和接下来的状态,当我们执行程序的时候,很多时候需要调用一些外部变量,如果没这些外部变量,程序就运行不起来,也就是说我们要让程序运行起来就要把这些变量赋值,赋值外部变量的过程就叫做上文,而我们将要达到的状态就叫做下文。
  • 把context理解成为环境,在编程中,一些编程构建需要考虑到当前的运行环境,才能理解他的运行结果,就像浏览一篇文章,直接看其中的某一句话,并不能理解其中的意思,谈到这让我想起了公务员考试申论中的语意题,就是让考生联系上下文给出解答。
  • 同样大的操作在不同上下文中的结果是不同的,在windows系统中,通过右键点击出现的 菜单英文就是(context menu),在桌面上的点击和在文件夹中的点击结果是不一样的,Windows就是通过上下文来判断输出哪种菜单。

context in Flask

在flask中有两种上下文:application contextrequest context,即应用上下文和请求上下文。
源码定义:

def _lookup_req_object(name):
    top = _request_ctx_stack.top
    if top is None:
        raise RuntimeError(_request_ctx_err_msg)
    return getattr(top, name)
 
 
def _lookup_app_object(name):
    top = _app_ctx_stack.top
    if top is None:
        raise RuntimeError(_app_ctx_err_msg)
    return getattr(top, name)
 
 
def _find_app():
    top = _app_ctx_stack.top
    if top is None:
        raise RuntimeError(_app_ctx_err_msg)
    return top.app
 
 
# context locals
_request_ctx_stack = LocalStack()
_app_ctx_stack = LocalStack()
current_app = LocalProxy(_find_app)
request = LocalProxy(partial(_lookup_req_object, 'request'))
session = LocalProxy(partial(_lookup_req_object, 'session'))
g = LocalProxy(partial(_lookup_app_object, 'g'))

猜你喜欢

转载自www.cnblogs.com/cuiyuanzhang/p/10235586.html