Flask-Cache——缓存

一、安装:
pip install Flask-Cache

不会去官网学啊

二、配置缓存:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、使用:
from flask import Flask
from flask.ext.cache import Cache

app = Flask(__name__)
# Check Configuring Flask-Cache section for more details
cache = Cache(app,config={'CACHE_TYPE': 'simple'})

你能够用 init_app 方法在初始化 Cache 后设置它:

cache = Cache(config={'CACHE_TYPE': 'simple'})

app = Flask(__name__)
cache.init_app(app)
三、缓存视图函数:

使用装饰器 cached() 能够缓存视图函数。
它在默认情况下使用请求路径(request.path)作为cache_key:

@cache.cached(timeout=50)
def index():
    return render_template('index.html')

该装饰器有一个可选的参数:unless,它允许一个可调用的、返回值是True或者False的函数。如果 unless 返回 True,将会完全忽略缓存机制(内置的缓存机制会完全不起作用)。

四、缓存其它函数:

使用 @cached 装饰器也能够缓存其它非视图函数的结果。
唯一的要求是需要指定 key_prefix,否则会使用请求路径(request.path)作为cache_key:

@cache.cached(timeout=50, key_prefix='all_comments')
def get_all_comments():
    comments = do_serious_dbio()
    return [x.author for x in comments]

cached_comments = get_all_comments()
五、Memoization(一种缓存技术)

如果函数不接受参数的话,cached() 和 memoize() 两者的作用是一样的。
memoization背后的理论是:在一次请求中如果一个函数需要被调用多次,它只会计算第一次使用这些参数调用该函数。

class Person(db.Model):
    @cache.memoize(50)
    def has_membership(self, role_id):
            return Group.query.filter_by(user=self, role_id=role_id).count() >= 1

在这里插入图片描述

删除memoize的缓存

在这里插入图片描述

清除缓存

在这里插入图片描述

发布了128 篇原创文章 · 获赞 0 · 访问量 2485

猜你喜欢

转载自blog.csdn.net/qq_41134008/article/details/105698861
今日推荐