Я недавно обнаружил , что атрибуты объекта страницы в 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 кэширует GET-запросы по умолчанию.В моих тестах, когда атрибут объекта был частью вывода, и этот атрибут изменился, CherryPy обслужил новое значение атрибута.Означает ли это, что выходные данные были только частично кэшированы?
Для меня это будет полезно, если вы обновляете self.pageoutput каждый раз, когда вы меняете базу данных.Единственная трудность, которую я могу себе представить, - это если я хочу отобразить информацию о пользователе.Что ты думаешь?