使用Flask-Cache緩存實(shí)現(xiàn)給Flask提速的方法詳解
本文實(shí)例講述了使用Flask-Cache緩存實(shí)現(xiàn)給Flask提速的方法。分享給大家供大家參考,具體如下:
Django里面可以很方便的應(yīng)用緩存,那Flask里面沒準(zhǔn)備這么周全怎么辦?自己造輪子么?不用的,前人種樹后人乘涼,我們有Flask-Cache,用起來和Django里面一樣方便哦!
1.安裝
pip install Flask-Cache
2.配置
以我的zhihu項(xiàng)目(源碼)為例:
在config.py里面,設(shè)置simple緩存類型,也可以用第三方的redis之類的,和Django一樣,裝好redis改下設(shè)置就行
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) #工廠函數(shù)返回創(chuàng)建的程序示例 return app
3.應(yīng)用
在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')#設(shè)置一個(gè)key_prefix來作為標(biāo)記,然后,在內(nèi)容更新的函數(shù)里面調(diào)用cache.delete('index')來刪除緩存來保證用戶訪問到的內(nèi)容是最新的
def index():
print("命令行里顯示我就是調(diào)用這個(gè)函數(shù)了沒走緩存,不顯示我就是直接走緩存沒吊用函數(shù)")
# 省略
return render_template('index4.html', form=form, posts=posts,show_followed=show_followed, pagination=pagination)
執(zhí)行一遍,看看有沒有print輸出,就可以看到緩存是否生效
4.清除緩存
第一種方法就是設(shè)置過期時(shí)間自動(dòng)清除,可以在 Flask 的config里面加上配置項(xiàng):
CACHE_DEFAULT_TIMEOUT 或者裝飾器加參數(shù)timeout=50。
第二種方法就是主動(dòng)刪除,比如@cache.cached(timeout=300,key_prefix='index')設(shè)置好了緩存,刪除的時(shí)候用cache.delete('index')即可
@main.route('/askquestion', methods=['GET','POST'])
@login_required
def askquestion():
#提問題寫入數(shù)據(jù)庫操作省略
cache.delete('index')#刪除緩存
return render_template('askquestion.html', form=form, posts=posts,show_followed=show_followed, pagination=pagination)
就像上面如果沒設(shè)置key的話,默認(rèn)的key_prefix='view/%s',這個(gè)%s就是請(qǐng)求的路徑request.path,所以如果用@cache.cached(timeout=300)建立緩存就可以用cache.delete('view//')來清除緩存了,請(qǐng)求路徑有的函數(shù)沒有,最好設(shè)置key來搞
還有一種清除所有緩存的cache.clear()
希望本文所述對(duì)大家基于Flask框架的Python程序設(shè)計(jì)有所幫助。
- Python的Flask框架使用Redis做數(shù)據(jù)緩存的配置方法
- Flask框架學(xué)習(xí)筆記(一)安裝篇(windows安裝與centos安裝)
- Python Web框架Flask下網(wǎng)站開發(fā)入門實(shí)例
- Python的Flask框架中@app.route的用法教程
- 30分鐘搭建Python的Flask框架并在上面編寫第一個(gè)應(yīng)用
- Python的Flask框架中web表單的教程
- 使用Python的Flask框架來搭建第一個(gè)Web應(yīng)用程序
- Python使用Flask框架同時(shí)上傳多個(gè)文件的方法
- Python的Flask框架的簡(jiǎn)介和安裝方法
相關(guān)文章
淺談四種快速易用的Python數(shù)據(jù)可視化方法
這篇文章主要介紹了淺談四種快速易用的Python數(shù)據(jù)可視化方法,數(shù)據(jù)可視化,是指用圖形的方式來展現(xiàn)數(shù)據(jù),從而更加清晰有效地傳遞信息,主要方法包括圖表類型的選擇和圖表設(shè)計(jì)的準(zhǔn)則,需要的朋友可以參考下2023-04-04
聊聊python在linux下與windows下導(dǎo)入模塊的區(qū)別說明
這篇文章主要介紹了聊聊python在linux下與windows下導(dǎo)入模塊的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
python3實(shí)現(xiàn)公眾號(hào)每日定時(shí)發(fā)送日?qǐng)?bào)和圖片
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)公眾號(hào)每日定時(shí)發(fā)送日?qǐng)?bào)和圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
python FastApi實(shí)現(xiàn)數(shù)據(jù)表遷移流程詳解
今天我們來聊一聊在FastApi里面,數(shù)據(jù)遷移工作,F(xiàn)astAPI是一個(gè)現(xiàn)代的,快速(高性能)python web框架。本文將利用fastapi實(shí)現(xiàn)數(shù)據(jù)表遷移功能,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-08-08
解決Python中字符串和數(shù)字拼接報(bào)錯(cuò)的方法
相信很多的新手朋友都會(huì)碰到python連接字符串和數(shù)字的問題,因?yàn)閜ython是強(qiáng)類型的語言,如果你把一個(gè)字符串和數(shù)字直接做連接的操作的話,就會(huì)直接報(bào)錯(cuò)的,今天就給大家說下字符串和數(shù)字拼接的問題,有需要的朋友們可以參考借鑒。2016-10-10
Python利用request庫實(shí)現(xiàn)翻譯接口
這篇文章主要為大家詳細(xì)介紹了Python如何利用request庫打造自己的翻譯接口,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-04-04
Python 郵箱登錄驗(yàn)證碼功能實(shí)現(xiàn)代碼
本文介紹了結(jié)合前端校驗(yàn)和后端Redis緩存策略實(shí)現(xiàn)郵箱登錄的功能,旨在提高安全性和效率,前端校驗(yàn)郵箱格式,后端生成并發(fā)送驗(yàn)證碼,使用Redis緩存驗(yàn)證碼以提高效率和安全性,感興趣的朋友一起看看吧2024-12-12
使用Python串口實(shí)時(shí)顯示數(shù)據(jù)并繪圖的例子
今天小編就為大家分享一篇使用Python串口實(shí)時(shí)顯示數(shù)據(jù)并繪圖的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12

