2010-03-07 70 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(請求,響應)相關的東西。另外爲了測試它更容易。

相關問題