Django建议练习会话信息

时间:2011-05-25 17:21:58

标签: django session django-views

应该在哪里处理'与会话相关的东西'。例如:

# Set a session value:
request.session["fav_color"] = "blue"

# Get a session value -- this could be called in a different view,
# or many requests later (or both):
fav_color = request.session["fav_color"]

这应该在view中完成吗?在__init__?在model?例如,如果我存储了大量可由多个视图/页面访问的会话变量,该怎么办?

1 个答案:

答案 0 :(得分:1)

好吧,会话要求提供请求对象。因此,几乎需要以某种形式或方式在视图中处理它。整个“Fat Model,Skinny Controller”的口头禅倾向于吓唬人们在视图中做太多事情(这实际上是Django中的控制器)。但是,遵循的指南是业务逻辑属于模型,但视图逻辑属于视图。会话本质上与视图相关,因此我认为在那里使用它们没有任何问题。

您在会话中存储的数据量是非常无关紧要的,至少在逻辑发生的意义上是这样。 (在页面加载等方面确实有点重要。)