使用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è)置一個key_prefix來作為標(biāo)記,然后,在內(nèi)容更新的函數(shù)里面調(diào)用cache.delete('index')來刪除緩存來保證用戶訪問到的內(nèi)容是最新的 def index(): print("命令行里顯示我就是調(diào)用這個函數(shù)了沒走緩存,不顯示我就是直接走緩存沒吊用函數(shù)") # 省略 return render_template('index4.html', form=form, posts=posts,show_followed=show_followed, pagination=pagination)
執(zhí)行一遍,看看有沒有print
輸出,就可以看到緩存是否生效
4.清除緩存
第一種方法就是設(shè)置過期時間自動清除,可以在 Flask 的config里面加上配置項(xiàng):
CACHE_DEFAULT_TIMEOUT 或者裝飾器加參數(shù)timeout=50
。
第二種方法就是主動刪除,比如@cache.cached(timeout=300,key_prefix='index')
設(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'
,這個%s
就是請求的路徑request.path
,所以如果用@cache.cached(timeout=300)
建立緩存就可以用cache.delete('view//')
來清除緩存了,請求路徑有的函數(shù)沒有,最好設(shè)置key來搞
還有一種清除所有緩存的cache.clear()
希望本文所述對大家基于Flask框架的Python程序設(shè)計有所幫助。
- Python的Flask框架使用Redis做數(shù)據(jù)緩存的配置方法
- Flask框架學(xué)習(xí)筆記(一)安裝篇(windows安裝與centos安裝)
- Python Web框架Flask下網(wǎng)站開發(fā)入門實(shí)例
- Python的Flask框架中@app.route的用法教程
- 30分鐘搭建Python的Flask框架并在上面編寫第一個應(yīng)用
- Python的Flask框架中web表單的教程
- 使用Python的Flask框架來搭建第一個Web應(yīng)用程序
- Python使用Flask框架同時上傳多個文件的方法
- Python的Flask框架的簡介和安裝方法
相關(guān)文章
Django實(shí)現(xiàn)靜態(tài)文件緩存到云服務(wù)的操作方法
這篇文章主要介紹了Django實(shí)現(xiàn)靜態(tài)文件緩存到云服務(wù)的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08python定時任務(wù)sched庫用法簡單實(shí)例
sched可用于定時任務(wù),唯一需要注意的就是,這些任務(wù)在一個線程中運(yùn)行,如果前面的任務(wù)耗時過長,則后面的任務(wù)將順延執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于python定時任務(wù)sched庫用法的相關(guān)資料,需要的朋友可以參考下2023-01-01詳解Python如何使用Self類型實(shí)現(xiàn)返回類的實(shí)例對象
在 Python 中,類方法通常會返回類的實(shí)例對象,本文將詳細(xì)介紹如何在 Python 中使用 Self 類型來返回類的實(shí)例對象,并提供豐富的示例代碼幫助更好地理解,快跟隨小編一起學(xué)習(xí)起來吧2024-02-02Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計算實(shí)例
今天小編就為大家分享一篇Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計算實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python實(shí)現(xiàn)圖片滑動式驗(yàn)證識別方法
驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動化的場景中。這篇文章主要介紹了Python實(shí)現(xiàn)圖片滑動式驗(yàn)證識別方法,需要的朋友可以參考下2017-11-11