书到用时方恨少,事非经过不知难。这篇文章主要讲述Flask 上下文管理-- (session,request,current_app的传递)相关的知识,希望能为你提供帮助。
Flask session,request,current_app的传递
1 flask的 request, session 和 current_app 都是 设置方式比较新颖 -- 通过上下文管理的方式实现的
每次请求进来app.run调用 call 方法, 创建 一个本地线程(唯一标识作为键) -- 然后把实例化的对象push到一个地方,在请求结束后返回的时候 pop 掉local = {
'
标识'
:{'
stack'
:[RequestContext(),]}
}
【Flask 上下文管理-- (session,request,current_app的传递)】2 补充 partial 函数
其实就是函数调用的时候,有多个参数 参数,但是其中的一个参数已经知道了,我们可以通过这个参数重新绑定一个新的函数,然后去调用这个新函数。from functools import partialdef f(a,b):
return a + bf1 = partial(f,10)print(f1(5))
-->
>
15
3 唯一标识
theading_local-->
>
每一个线程 创建一个from greenlet import getcurrent as get_ident
可以基于 greenlet -->
>
粒度更细比如 wsgi-- 有基于线程的,也有基于协程实现的本地线程:import threadinglocal_values = threading.local()def func(num):
local_values.name = num
import time
time.sleep(1)
print(local_values.name, threading.current_thread().name)for i in range(20):
th = threading.Thread(target=func, args=(i,), name='
线程%s'
% i)
th.start()
推荐阅读
- Android面试收集录 对话框信息提示和菜单
- 安卓-活动的生命周期
- mappers(将sql映射注册到全局配置中)
- android--------阿里 Sophix移动热修复
- 安卓-项目目录结构
- appium等待元素
- Appium Android 获取包名和 Activity 的几种方法 (转)
- 小松教你手游开发unity实用技能unity发包优化(android一键发包)
- Archive of all Android Studio releases