Django应用程序设计:为每个请求执行一组通用查询

时间:2013-08-01 21:13:03

标签: database django architecture structure

我对Django和网络应用程序开发相当新,所以也许我的问题没有经过深思熟虑。

对于我正在处理的新网站,我想为每个传入的请求执行一组数据库查询。我想知道在代码中构建它的最佳方法是什么。

更具体地说,我想在适当的时候在标题部分中显示问候语(例如“嗨约翰”)以及用户购物车的状态。我考虑创建一个get_header_details辅助函数并从每个视图方法调用它,但必须有一个更好的方法来执行此操作。思考?

此外,即使我想在每个页面上显示问候和购物车状态,也许我不需要在每个页面请求上查询它。有没有办法做到这一点?这是一个学习项目,所以我可以在我的技术堆栈中添加东西。

2 个答案:

答案 0 :(得分:2)

对于购物图表,middlewarecontext processor加上sessions,最好是caching(例如Memcached)是可行的方式。

中间件允许您在每个视图之前或之后执行任意操作。上下文处理器允许您将变量插入每个模板。实现购物图表的最常用方法是使用会话,因为您通常不希望默认情况下无限期地保存购物图表的状态(当然,您可以将此选项作为便利功能提供)。

对于问候消息,请使用缓存来防止对每个请求进行额外(可能不需要的)查询。

答案 1 :(得分:0)

Django有良好的caching支持。 Template fragment caching可能对您的实例有用。