本文实例讲述了使用Flask-Cache缓存实现给Flask提速的方法。分享给大家供大家参考,具体如下:
Django里面可以很方便的应用缓存,那Flask里面没准备这么周全怎么办?自己造轮子么?不用的,前人种树后人乘凉,我们有Flask-Cache,用起来和Django里面一样方便哦!
1.安装
pip install Flask-Cache
2.配置
以我的zhihu项目(源码)为例:
在config.py里面,设置simple缓存类型,也可以用第三方的redis之类的,和Django一样,装好redis改下设置就行
class Config: #省略 CACHE_TYPE = 'simple'
在app/init.py里面
from flask_cache import Cache #缓存 cache = Cache() def create_app(config_name): app = Flask(__name__) #此处省略若干字 cache.init_app(app) #工厂函数返回创建的程序示例 return app
3.应用
在views.py里面
from .. import db, cache from . import main from ..decorators import admin_required, permission_required @main.route('/', methods=['GET','POST']) @cache.cached(timeout=300,key_prefix='index')#设置一个key_prefix来作为标记,然后,在内容更新的函数里面调用cache.delete('index')来删除缓存来保证用户访问到的内容是最新的 def index(): print("命令行里显示我就是调用这个函数了没走缓存,不显示我就是直接走缓存没吊用函数") # 省略 return render_template('index4.html', form=form, posts=posts,show_followed=show_followed, pagination=pagination)
执行一遍,看看有没有print
输出,就可以看到缓存是否生效
4.清除缓存
第一种方法就是设置过期时间自动清除,可以在 Flask 的config里面加上配置项:
CACHE_DEFAULT_TIMEOUT 或者装饰器加参数timeout=50
。
第二种方法就是主动删除,比如@cache.cached(timeout=300,key_prefix='index')
设置好了缓存,删除的时候用cache.delete('index')
即可
@main.route('/askquestion', methods=['GET','POST']) @login_required def askquestion(): #提问题写入数据库操作省略 cache.delete('index')#删除缓存 return render_template('askquestion.html', form=form, posts=posts,show_followed=show_followed, pagination=pagination)
就像上面如果没设置key的话,默认的key_prefix='view/%s'
,这个%s
就是请求的路径request.path
,所以如果用@cache.cached(timeout=300)
建立缓存就可以用cache.delete('view//')
来清除缓存了,请求路径有的函数没有,最好设置key来搞
还有一种清除所有缓存的cache.clear()
希望本文所述对大家基于Flask框架的Python程序设计有所帮助。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月18日
2024年11月18日
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】