扫码阅读
手机扫码阅读
Flask 上下文是什么 ?
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-link.png)
![](/theme/default/default/images/main/icon-jing.png)
咸鱼运维杂谈
扫码关注公众号
Flask 上下文简介
本文由咸鱼撰写,旨在解释Flask上下文的初衷和应用。Flask上下文通过本地线程技术实现隔离,确保并发处理多个请求时各自独立。每个请求都会创建一个Flask上下文对象,包含全局或请求级别的变量。请求处理时,为上下文对象分配本地线程,请求完毕后销毁上下文对象,确保线程安全。
Flask 上下文的工作机制
Flask应用通过将每个请求分配给不同线程,创建对应的上下文对象来处理多个同时发生的请求。Flask使用werkzeug.local模块的Local类通过线程ID区分请求上下文。
两种上下文
Flask上下文分为应用上下文和请求上下文。应用上下文是全局的运行环境,存储应用配置等信息;请求上下文是每个请求独立的运行环境,存储请求相关信息。应用上下文在整个应用生命周期内只有一个,而请求上下文随请求动态创建和销毁。
上下文激活
Flask上下文激活分为自动激活和手动激活。自动激活在处理请求时无需手动干预,如使用flask run命令启动程序。手动激活在特殊情况下需要,如单元测试,通过app.app_context()管理器激活应用上下文。无论哪种激活方式,目的都是访问请求上下文并在请求处理完毕后销毁。
结语
感谢阅读本文,作者咸鱼希望读者了解Flask上下文的设计意图和工作方式,并鼓励读者支持作者继续写作。
想要了解更多内容?
![](/theme/default/default/images/main/icon-link.png)
![](/theme/default/default/images/main/icon-jing.png)
咸鱼运维杂谈
扫码关注公众号
咸鱼运维杂谈的其他文章
加入社区微信群
与行业大咖零距离交流学习
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
软件研发质量管理体系建设
白皮书上线