Flask蓝图中,如何使用flask_cache

在flask的项目中,难免会使用到缓存,flask使用最多的缓存库往往是flask_cache。
一般情况下,代码也都在manage.py中编写,flask_cache的使用方式为:
from flask import Flask
from flask_cache import Cache
app=Flask(__name__)#初始化当前程序对象
cache=Cache(app)#利用这个程序对象去初始化缓存cache对象

用这种方式去初始化,如果把所有视图函数放在一个文件中,这样子是没问题的,但是!!!当随着项目越来越大,
一个文件已经不足以支撑着整个项目视图的时候,flask的蓝图它应用而生。
from flask import Blueprint

但是,注意一点,在蓝图中该如何使用缓存呢???缓存的构造方法为cache=Cache(app=app),
你这个app该去哪里获取呢?难道from manage import app?想法很好,但是,当你实际去操作的时候,
发现根本不行。会报错,ImportError: cannot import name 'app',这是为什么?原因是,
python这个语言自身的原因造成的(循环导入),简单来说就是 A文件导入了B文件的东西,
B文件又导入了A的东西,互相依赖,导致报错。

讲了这么多,不理解也没事儿,两种方式解决:
1、避免在文件头中写from manage import app,这个是错误的。正确的是,在def 自定义方法中导入app,
来一段伪代码展示
def fuc():
	from manage import app
	......
2、使用flask的current_app,直接在文件开头,from flask import current_app。
这个current_app是个全局变量,指的就是当前的项目运行的这个app。
cache=Cache(app=current_app)

以上说了这么多,希望能帮到大家。

你可能感兴趣的:(Python,web,flask,python,后端)