模板缓存
模板缓存
简介
有时,您的模板不会经常更改,其中可能有很多需要时间运行的逻辑,例如包含了几个循环,甚至非常大的数量级。如果每天或每秒多次访问此页面,您可以使用模板缓存来减少对服务器的压力。
这是一项强大的功能,可以减少那些耗费资源且复杂的模板的服务器负载。
入门
此功能是在 Masonite 1.4 及更高版本中引入的。您可以通过运行 pip show masonite
来检查 Masonite 版本,这将为您提供已安装的 Masonite 包的详细信息。
您可以使用所需的任何缓存来缓存模板。开箱即用的仅支持 disk
驱动程序,但您可以创建任何您喜欢的驱动程序。有关如何创建驱动程序的信息,请阅读 关于 Drivers 文档。如果您确实创建了驱动程序,请考虑使其在 PyPi 上可用,以便其他人可以将其安装到他们的项目中。如果您想为该项目做出贡献并添加到新安装的 Masonent 驱动程序中,请访问 Masonent 的 GitHub 存储库并打开一个 issue 进行讨论。
所有缓存配置都在 config/cache.py
内部,其中包含两个设置,DRIVER
和 DRIVERS
。
我们可以这样指定来设置要使用的驱动程序:
DRIVER = 'disk'
与其他所有配置一样,您需要在 DRIVERS
字典中指定选项:
DRIVERS = {
'disk': {
'location': 'bootstrap/cache'
}
}
缓存的所有模板都将在该文件夹内。您可能希望为模板指定另一个目录,例如:
DRIVERS = {
'disk': {
'location': 'bootstrap/cache/templates'
}
}
缓存模板
为了在任何给定的时间内缓存模板,可以将 .cache_for()
方法附加到视图上。看起来像:
def show(self):
return view('dashboard/user').cache_for(5, 'seconds')
这会将模板缓存 5 秒钟。 5 秒钟后,该页面上的下一次访问将显示未缓存的模板,然后重新缓存 5 秒钟。
在许多库和框架中,一直令人讨厌的是复数和单数之间的区别,例如 second
和 seconds
。因此,如果我们只想做 1 分钟,那将是:
def show(self):
return view('dashboard/user').cache_for(1, 'minute')
选项
有以下几种缓存长度可供选择。以下是所有缓存选项:
我们可以缓存几秒钟:
def show(self):
return view('dashboard/user').cache_for(1, 'second')
def show(self):
return view('dashboard/user').cache_for(10, 'seconds')
或者几分钟:
def show(self):
return view('dashboard/user').cache_for(1, 'minute')
def show(self):
return view('dashboard/user').cache_for(10, 'minutes')
或者几小时:
def show(self):
return view('dashboard/user').cache_for(1, 'hour')
def show(self):
return view('dashboard/user').cache_for(10, 'hours')
或者几天:
def show(self):
return view('dashboard/user').cache_for(1, 'days')
def show(self):
return view('dashboard/user').cache_for(10, 'days')
或者几个月:
def show(self):
return view('dashboard/user').cache_for(1, 'month')
def show(self):
return view('dashboard/user').cache_for(10, 'months')
或者甚至几年:
def show(self):
return view('dashboard/user').cache_for(1, 'year')
def show(self):
return view('dashboard/user').cache_for(10, 'years')
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。