W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
如果您的應(yīng)用運(yùn)行很慢,那就嘗試引入一些緩存吧。好吧,至少這是提高表現(xiàn) 最簡單的方法。緩存的工作是什么呢?比如說您有一個需要一段時間才能完成 的函數(shù),但是這個函數(shù)的返回結(jié)果可能在5分鐘之內(nèi)都是足夠有效的,因此您可以 將這個結(jié)果放到緩存中一段時間,而不用反復(fù)計算。
Flask 本身并不提供緩存功能,但是作為Flask 基礎(chǔ)的 Werkzeug 庫,則提供了一些 基礎(chǔ)的緩存支持。Werkzeug 支持多種緩存后端,通常的選擇是 Memcached 服務(wù)器。
類似于建立 Flask 的對象一樣,您創(chuàng)建一個緩存對象,然后讓他 保持存在。如果您使用的是開發(fā)服務(wù)器,您可以創(chuàng)建一個 SimpleCache 對象,這個對象將元素緩存在 Python 解釋器的控制的內(nèi)存中:
from werkzeug.contrib.cache import SimpleCache
cache = SimpleCache()
如果您希望使用 Memcached 進(jìn)行緩存,請確保您已經(jīng)安裝了 Memcache 模塊支持 (您可以通過 PyPi<http://pypi.python.org/ 獲取),并且有一個可用的 Memcached 服務(wù)器正在運(yùn)行。然后您可以像下面這樣連接到緩存服務(wù)器:
from werkzeug.contrib.cache import MemcachedCache
cache = MemcachedCache(['127.0.0.1:11211'])
如果您在使用 App Engine ,您可以輕易地通過下面的代碼連接到 App Engine 的 緩存服務(wù)器:
from werkzeug.contrib.cache import GAEMemcachedCache
cache = GAEMemcachedCache()
有兩個非常重要的函數(shù)可以用來使用緩存。那就是 get() 函數(shù)和 set() 函數(shù)。他們的使用方法 如下:
從緩存中讀取項目,請使用 get() 函數(shù), 如果現(xiàn)在緩存中存在對應(yīng)項目,它將會返回。否則函數(shù)將會返回 None
rv = cache.get('my-item')
在緩存中添加項目,使用 set() 函數(shù)。 第一個參數(shù)是想要設(shè)定的鍵,第二個參數(shù)是想要緩存的值。您可以設(shè)定一個超時時間, 當(dāng)時間超過時,緩存系統(tǒng)將會自動清除這個項目。
以下是一個通常情況下實現(xiàn)功能完整例子:
def get_my_item():
rv = cache.get('my-item')
if rv is None:
rv = calculate_value()
cache.set('my-item', rv, timeout=5 * 60)
return rv
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: