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,这都会很有用。我能想象的唯一困难是如果我想显示用户特定的信息。你怎么看?