模板缓存

未匹配的标注
本文档最新版为 4.0,旧版本可能放弃维护,推荐阅读最新版!

模板缓存

简介

有时,您的模板不会经常更改,其中可能有很多需要时间运行的逻辑,例如包含了几个循环,甚至非常大的数量级。如果每天或每秒多次访问此页面,您可以使用模板缓存来减少对服务器的压力。

这是一项强大的功能,可以减少那些耗费资源且复杂的模板的服务器负载。

入门

此功能是在 Masonite 1.4 及更高版本中引入的。您可以通过运行 pip show masonite 来检查 Masonite 版本,这将为您提供已安装的 Masonite 包的详细信息。

您可以使用所需的任何缓存来缓存模板。开箱即用的仅支持 disk 驱动程序,但您可以创建任何您喜欢的驱动程序。有关如何创建驱动程序的信息,请阅读 关于 Drivers 文档。如果您确实创建了驱动程序,请考虑使其在 PyPi 上可用,以便其他人可以将其安装到他们的项目中。如果您想为该项目做出贡献并添加到新安装的 Masonent 驱动程序中,请访问 Masonent 的 GitHub 存储库并打开一个 issue 进行讨论。

所有缓存配置都在 config/cache.py 内部,其中包含两个设置,DRIVERDRIVERS

我们可以这样指定来设置要使用的驱动程序:

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 秒钟。

在许多库和框架中,一直令人讨厌的是复数和单数之间的区别,例如 secondseconds。因此,如果我们只想做 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')

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/masonite/2.3/us...

译文地址:https://learnku.com/docs/masonite/2.3/us...

上一篇 下一篇
贡献者:2
讨论数量: 0
发起讨论 只看当前版本


暂无话题~