4

我正在试验各种 Django 1.3 缓存方法以用于我们的登录页面。此页面包含多个数据库查询以及用户身份验证的结果。到目前为止,性能最好的解决方案是使用@cache_page 装饰器来缓存整个视图函数响应。问题是用户身份验证也会被缓存。

我可以在缓存中为每个用户创建一个键,但这似乎很浪费;一遍又一遍地缓存相同的登录页面,唯一的区别是用户的身份验证。除了身份验证之外,我还使用了模板片段缓存低级缓存,但性能远不及@cache_page 装饰器方法。

有没有办法在没有大量基于用户的冗余缓存的情况下获得 @cache_page 的性能?

4

1 回答 1

2

查看这篇博文:http: //www.holovaty.com/writing/django-two-phased-rendering/

基本上,该技术是将用户特定的段包装在模板标记中,以防止模板引擎呈现它们,然后缓存,然后重新呈现缓存的输出以填写用户详细信息。

Django 1.5 包含一个名为的标签verbatim,可以用来代替raw帖子中的自定义标签;不过,您仍然需要自定义CachedTemplateMiddleware或等效项。

于 2012-12-05T21:43:42.030 回答