Python 在pylons web应用程序中,应该从模型类或控制器设置cookie吗?

Python 在pylons web应用程序中,应该从模型类或控制器设置cookie吗?,python,pylons,Python,Pylons,试图找出实现此目的的最佳方法: 我应该做一些类似于: 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_c

试图找出实现此目的的最佳方法:

我应该做一些类似于:

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)

为什么要这样或那样做?谢谢。

我认为传统上,您希望模型关注数据持久性和验证,而不是像cookies这样与http相关的东西。这让控制员在我看来更合适

我能想到的一个原因(不是唯一的原因)是,有一天,您可能需要根据与web内容无关的模型逻辑运行应用程序


考虑到上面的实现,我怀疑用户对象必须从挂架中的堆叠代理/全局对象访问响应(可能是错误的)。因此,如果您曾经需要在使用来自消息队列的消息的程序中使用相同的模型类,例如,使响应可用的挂架机制将不可用。这可能是一个容易避免的问题

我也同意Tom的观点,你应该尽量避免在不同的类中有太多的依赖关系。因此,控制器应该对所有与http(请求、响应)相关的内容进行访问。此外,对于测试来说,它要容易得多