2016-01-20 53 views
0

我需要代碼在HttpResponse中返回一個字符串和值,但它只返回第一個值(val)。爲什麼我應該返回val和val2?字符串我將消息中使用,我需要的Val函數返回的下一個函數使用它作爲價值,這樣的事情:如何在HttpResponse中返回字符串和值?

def func1(request): 
    data = json.loads(request.body) 
    val = "string" 
    val2 = data['email'] 
    return HttpResponse(val, val2) 

def func2(): 
    val3 = func1 
    val4 = "client %s" % val2 
    if val4: 
     return True 
    else: 
     return False 
+1

在什麼樣的格式不你的客戶所期望的數據?原始HTTP數據不是結構化的,它只是一個數據流。 – dhke

回答

3

客戶端(網頁瀏覽器)預計一個字符串作爲迴應:

return HttpResponse("a string: {}".format(val)) 

或使用JSON用於響應:

return JsonResponse({'message': 'a string', 'val': val}) 

,或者一個變量發送到下一個Django的視圖:

def my_view(request): 
    if request.session.get('val', None): 
     # do something with the 'val' variable. 
    else: 
     request.session['val'] = 'somevalue' 
     return HttpResponse('some message') 

More about Django session here.

+0

這裏的字符串只是與val無關的文本。換句話說:我應該放置哪些參數來返回任何字符串和任何值HttpResponse – Andriy

+0

如果您的客戶端是Web瀏覽器,它將只接受*一個*字符串。所以你必須發送val作爲該字符串的一部分。請澄清(編輯你的問題)你想要做什麼,所以我們可以告訴你如何更好地實現這一點。 – C14L

+0

我已更新問題,請參閱 – Andriy

2

使用JsonResponse這將解決CORS問題也 「」」 處理的內容類型的JSON沒有更多的要補充的內容類型。 ''」

def __init__(self, content={}, status=None,content_type='application/json'): 
     super(JsonResponse, self).__init__(
      json.dumps(content), 
      status=status, content_type=content_type) 

和響應將是這樣的:

return JsonResponse({"message": " message", "subject": subject})