慕仔4209126
Flask本身代码很简单,所以,了解Thread local context是最大的难点把。Local对象的作用就是,它是一个全局对象,你可以往里面保存东西,a线程保存到local对象的,只有a线程能取到,b线程的只有b线程能取到,如果,a,b保存了名字相同的东西,比如x,a取到的值是自己保存的,不会和b保存的混淆,修改操作也一样。 request,session,g都是用相同的原理实现的,都是保存在local对象里的线程(包括greenlet协程)安全的变量。flask自己实现了local对象而不是使用标准库的threading.Local对象