zoukankan      html  css  js  c++  java
  • 关于上下文

    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'))
    
  • 相关阅读:
    Java基础系列(3)- 程序流程控制
    Linux 文本处理三剑客
    POJ3592 Instantaneous Transference题解
    插入排序的优化非希尔【不靠谱地讲可以优化到O(nlogn)】 USACO 丑数
    BZOJ2818 与 BZOJ2301【euler,线性筛,莫比乌斯】
    BZOJ1857 传送带 (三分法求单峰函数极值)
    线段树详解
    二叉查找树 详解
    最小函数值 洛谷P2085
    二叉树的遍历转换(层序,中序转先序)
  • 原文地址:https://www.cnblogs.com/cuiyuanzhang/p/10235586.html
Copyright © 2011-2022 走看看