欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Flask-Cache緩存實(shí)現(xiàn)給Flask提速的方法詳解

 更新時間:2019年06月11日 09:00:29   作者:TKtalk  
這篇文章主要介紹了使用Flask-Cache緩存實(shí)現(xiàn)給Flask提速的方法,結(jié)合實(shí)例形式詳細(xì)分析了Flask-Cache的安裝、配置及緩存使用相關(guān)操作技巧,需要的朋友可以參考下

本文實(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è)計有所幫助。

相關(guān)文章

  • Django實(shí)現(xiàn)靜態(tài)文件緩存到云服務(wù)的操作方法

    Django實(shí)現(xiàn)靜態(tài)文件緩存到云服務(wù)的操作方法

    這篇文章主要介紹了Django實(shí)現(xiàn)靜態(tài)文件緩存到云服務(wù)的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 對Python信號處理模塊signal詳解

    對Python信號處理模塊signal詳解

    今天小編就為大家分享一篇對Python信號處理模塊signal詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python定時任務(wù)sched庫用法簡單實(shí)例

    python定時任務(wù)sched庫用法簡單實(shí)例

    sched可用于定時任務(wù),唯一需要注意的就是,這些任務(wù)在一個線程中運(yùn)行,如果前面的任務(wù)耗時過長,則后面的任務(wù)將順延執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于python定時任務(wù)sched庫用法的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Python制作進(jìn)度條的幾種方法

    Python制作進(jìn)度條的幾種方法

    如果你之前沒用過進(jìn)度條,八成是覺得它會增加不必要的復(fù)雜性或者很難維護(hù),其實(shí)不然。要加一個進(jìn)度條其實(shí)只需要幾行代碼,快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-12-12
  • 詳解Python如何使用Self類型實(shí)現(xiàn)返回類的實(shí)例對象

    詳解Python如何使用Self類型實(shí)現(xiàn)返回類的實(shí)例對象

    在 Python 中,類方法通常會返回類的實(shí)例對象,本文將詳細(xì)介紹如何在 Python 中使用 Self 類型來返回類的實(shí)例對象,并提供豐富的示例代碼幫助更好地理解,快跟隨小編一起學(xué)習(xí)起來吧
    2024-02-02
  • Python celery原理及運(yùn)行流程解析

    Python celery原理及運(yùn)行流程解析

    這篇文章主要介紹了Python celery原理及運(yùn)行流程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 基于Python把網(wǎng)站域名解析成ip地址

    基于Python把網(wǎng)站域名解析成ip地址

    這篇文章主要介紹了基于Python把網(wǎng)站域名解析成ip地址,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計算實(shí)例

    Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計算實(shí)例

    今天小編就為大家分享一篇Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計算實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python實(shí)現(xiàn)圖片滑動式驗(yàn)證識別方法

    Python實(shí)現(xiàn)圖片滑動式驗(yàn)證識別方法

    驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動化的場景中。這篇文章主要介紹了Python實(shí)現(xiàn)圖片滑動式驗(yàn)證識別方法,需要的朋友可以參考下
    2017-11-11
  • python如何以表格形式打印輸出的方法示例

    python如何以表格形式打印輸出的方法示例

    這篇文章主要介紹了python如何以表格形式打印輸出的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06

最新評論