2010-03-07 38 views
0

试图找出做到这一点的最好办法:在类似的控制器在挂架web应用程序中,应该从模型类还是控制器设置cookie?

def index(self): 
    if request.POST: 
     u = User(id) 
     u.setCookie() #All session logic in def setCookie() 

或者设置cookie:

我应该做这样的事情

def index(self): 
    if request.POST: 
     u = User(id) 
     response.set_cookie('session_key', u.session_key, max_age=3600) 

为什么这样做一个方式或其他?谢谢。

回答

2

我认为传统上你会希望模型关注数据持久性和验证,但不涉及http相关的东西,比如cookies。在我看来,这使控制器成为更合适的地方。

我能想到的一个原因(不是唯一的原因)是,有一天您可能需要运行应用程序,以抵御模型逻辑,这与应用程序无关。

上面给出您的实现我怀疑用户对象将不得不访问堆栈中的代理/全局变量的响应(可能是错误的)。因此,如果您需要在消耗消息队列中的消息的程序中使用相同的模型类,例如,使响应可用的定点机器将不可用。这可能是一个很容易避免的问题。

0

我也同样认同汤姆的观点,你应该尽量避免在不同类别的依赖。所以控制器应该对所有的http(请求,响应)相关的东西。另外为了测试它更容易。

相关问题