1
我最近discovered CherryPy中的頁面對象屬性在請求之間(和客戶端之間)是持久的。所以我想知道,將頁面輸出存儲在這種屬性中有意義嗎?像這樣:CherryPy緩存如何工作?
class Page:
def default(self, pagenumber):
if pagenumber not in self.validpages:
return 'Page number not found'
try:
html = self.pageoutput[pagenumber]
except KeyError:
html = self.formatter(self.dbcall(pagenumber))
return html
default.exposed = True
def formatter(self, data):
html = # Formatting code here
return html
def dbcall(self, pagenumber):
data = # Database lookup code here
return data
默認情況下,我知道CherryPy caches GET requests。在我的測試中,當一個對象屬性是輸出的一部分並且該屬性發生變化時,CherryPy提供了該屬性的新值。這是否意味着輸出僅被部分緩存?
對我來說,只要每次更改數據庫時更新self.pageoutput,這都會很有用。我能想象的唯一困難是如果我想顯示用戶特定的信息。你怎麼看?