上下文
什么是上下文(知乎)
来自知乎的一个回答,简单明了
> 作者:付鹏
链接:https://www.zhihu.com/question/26387327/answer/32618592
你查不到是因为上下文这个东西不是一个具体的东西,上下文在不同的地方表示不同的含义,要感性理解。
context其实说白了,和文章的上下文是一个意思,在通俗一点,我觉得叫环境更好。
....
林冲大叫一声“啊也!”
....
问:这句话林冲的“啊也”表达了林冲怎样的心里?
答:啊你妈个头啊!看,一篇文章,给你摘录一段,没前没后,你读不懂,因为有语境,就是语言环境存在,一段话说了什么,要通过上下文(文章的上下文)来推断。
子程序之于程序,进程之于操作系统,甚至app的一屏之于app,都是一个道理。
**程序执行了部分到达子程序,子程序要获得结果,要用到程序之前的一些结果(包括但不限于外部变量值,外部对象等等);**
app点击一个按钮进入一个新的界面,也要保存你是在哪个屏幕跳过来的等等信息,以便你点击返回的时候能正确跳回,如果不存肯定就无法正确跳回了。
看这些都是上下文的典型例子,理解成环境就可以,(而且上下文虽然叫上下文,但是程序里面一般都只有上文而已,只是叫的好听叫上下文。。进程中断在操作系统中是有上有下的,不过不给题主说了,免得产生新的问题)
Flask中的上下文
- current_app(
app context
):,见过,但是没有用过 - g(
app context
):,可以将用户自定义数据绑定到g对象上,例如通过before_request
钩子函数检查客户端是否保存过登录信息,如果有登录信息则去数据库中获取用户信息,然后绑定到g对象上,这样视图函数就不需要写重复的判断和获取数据的代码了 - request(
request context
):flask会把客户端请求或者提交数据保存在request对象中,初次之外还会有一些其他的客户端信息,例如UA、IP等等 - session(
request context
):用户会话信息,字典类型用来保存一些用户信息供以服务器端使用