2014-07-18 64 views
0

我有一個關於的HttpRequest和HttpResponse對象 考慮以下之情況問題:響應是否與在Django中傳遞的請求一樣返回?

def articles_cookies(request): 
language = 'en-us' 
session_language = 'en-us' 

if 'lang' in request.COOKIES: 
    language = request.COOKIES['lang'] 

return render_to_response('articles.html', 
          {'articles':Article.objects.all(), 
          'language':language}) 

def language(request,language='en-us'): 
    response = HttpResponse('setting language to %s' % language) 
    response.set_cookie('lang',language) 
    return response 

這是在Django的views.py。 語言返回的語言是否與傳入articles_cookies函數的請求相同?因爲我可以訪問請求中的Cookie。

在此先感謝。

+1

您的問題「語言返回的語言與傳遞到articles_cookies函數中的請求相同」是沒有意義的。答案與請求不同。請求從客戶端(瀏覽器)發送到服務器。響應從服務器發送到客戶端(作爲響應)。響應可以包含set-cookie標頭。瀏覽器存儲Cookie。請求包含Cookie標頭。請嘗試問一個有意義的問題:) – rje

回答

0

不,他們不是同一個對象。

將響應序列化爲HTTP響應後返回給瀏覽器。這個HTTP響應可以包含一個Set-Cookie頭,它指示瀏覽器在發出後續請求時發回給定的Cookie。

在接下來的請求中,瀏覽器發送帶有Cookie頭的新請求,然後Django將該頭解壓縮爲新的請求對象。

相關問題