localstack专题

阅读flask源码3:仿写Local,LocalStack

我们上篇分析了上下文压入栈,出栈的大致流程,现在我们要问,flask是怎么实现的呢?准备来说,Local是怎么管理不同请求对象的,LocalProxy是怎么代理的。因为flask源码太复杂,今天我们自己一步一步实现类似于Local,LocalProxy的代码。通过自己实现,我们学会用代理模式,学会python的魔法方法__setattr__,getattr。 class A(object):de

阅读flask源码2:Local,LocalStack

我们还是以flask0.1的代码来阅读,先提出几个常见的问题: 1上下文是怎么被压入栈的? 2为什么在不同的程序中通过相同的变量request可以拿到对应的请求 我们先看第一个问题:上下文是怎么被压入栈的? 服务器传过来的请求参数,被封装成了一个_RequestContext对象,这个对象里有这个请求相关联的一组互相“绑架”的参数,它们组成一个上下文环境。比如request,被实例化的ap