【问题描述】

笔者遇到了flask很经典的错误,报错信息如下:

【问题分析】

application context 是Flask的应用上下文,包含app和g等变量,而在不方便操作app的时候,我们会用current_app来代替app。而current_app只能在处理请求时访问,而笔者在处理请求之外使用了current_app,故报错。具体来说,笔者在自定义的工具类中使用了current_app,运行程序,在程序加载该工具类时无法获取应用上下文,故报错。错误代码如下:

【问题解决】

既然不能再工具类中的类属性里使用current_app,那就把代码注释掉,放到类方法中使用,修改如下。而笔者定义的类方法是在视图中使用的,故修改之后的current_app是在视图中处理请求时使用的,所以不会报错,问题解决了。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐