Django框架下在URLconf中指定视图缓存的方法

时间:2021-12-06 18:35:59

将视图与缓存系统进行了耦合,从几个方面来说并不理想。 例如,你可能想在某个无缓存的站点中重用该视图函数,或者你可能想将该视图发布给那些不想通过缓存使用它们的人。 解决这些问题的方法是在 URLconf 中指定视图缓存,而不是紧挨着这些视图函数本身来指定。

完成这项工作非常简单: 在 URLconf 中用到这些视图函数的时候简单地包裹一个 cache_page 。以下是刚才用到过的 URLconf : 这是之前的URLconf:

?
1
2
3
urlpatterns = ('',
  (r'^foo/(\d{1,2})/$', my_view),
)

以下是同一个 URLconf ,不过用 cache_page 包裹了 my_view :

?
1
2
3
4
5
from django.views.decorators.cache import cache_page
 
urlpatterns = ('',
  (r'^foo/(\d{1,2})/$', cache_page(my_view, 60 * 15)),
)

如果采取这种方法, 不要忘记在 URLconf 中导入 cache_page。