我们都知道在Django中Django封装了缓存插件django-cache,其实flask也有cache插件,叫做flask-cache
flask项目中缓存的使用
安装cache插件
pip install flask-cache
绑定使用缓存的flask应用app
app 初始化文件
import pymysql
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import CSRFProtect # 导入csrf校验模块,csrfProtect在1.0之后移除
from flask_cache import Cache
pymysql.install_as_MySQLdb()
# 惰性加载
csrf = CSRFProtect()
db = SQLAlchemy()
cache = Cache()
def create_app(config_name):
# 创建flask App实例
app = Flask(__name__)
# 使用类配置加载
app.config.from_object('settings.DebugConfig')
# app惰性加载插件
csrf.init_app(app)
db.init_app(app)
cache.init_app(app)
# 注册蓝图
from .main import main as main_blueprint
from .ApiResource import api_main
app.register_blueprint(main_blueprint)
app.register_blueprint(api_main,url_prefix='/api')
return app
setting配置添加
CACHE_TYPE = "simple"
或直接在app中添加
cache.init_app(app=app,config={'CACHE_TYPE' : 'simple'})
视图中使用
在视图当中,如果使用缓存装饰器和route装饰器,一定将缓存装饰器放到路由装饰器和函数的中间。否则不能生效,得到的是route路由的结果。
除了可以在视图中使用,也可采取前端方式使用缓存
flask-cache 有以下特点
- 跳转视图尽量不要用视图缓存,使用前端缓存
- 正常页面按照官网解释使用缓存
缓存清除
flask-cache插件同时也提供了清除缓存的方法,但是效果不是很好,不建议使用