django中的背景沉重的观点

时间:2014-08-10 13:32:28

标签: django

真的只是一个简单的问题。在django中使用基于优雅的视图时,有没有办法减轻每个视图?

我的一些视图加载了链接到许多查询集的上下文变量。我觉得这是错误的做法。

但是,我需要数据,可能不会在加载视图时立即执行。

你们有什么建议吗?

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决它,一些建议:

  • 重构您的观点,您使用重复的上下文数据吗?使用上下文处理器
  • 您是否需要初始渲染时可用的所有数据?然后,上下文处理器与缓存的组合将减少加载时间,缓存昂贵的对象,然后您可以使用DB相关信号刷新和重新生成它们(例如,post_save,使缓存过期并重新生成它)。
  • 如前所述,如果初始渲染中不需要您的数据,则分配ajax请求,分解视图,创建单独的ajax_views.py并将基于ajax的数据填入其中,创建相应的URL以便您的视图由逻辑分开。
  • 页面的片段缓存部分,如果你的视图需要数据,如上所述,你可以直接缓存对象,另一种方法是缓存模板或片段,再次你可以按时间或信号缓存(无效)缓存并重新生成)。
  • 缓存整个页面,如果您的数据一致并且不经常更改处理整页缓存,则可以再次通过信号使缓存无效。