2016-04-27 108 views
0

我們試圖使用python中的請求包發送對django api的post請求。在python中處理json post請求和在django中響應

請求:

d = {"key1":"123", "key2":[{"a":"b"},{"c":"d"}]} 

response = requests.post("http://127.0.0.1:8000/api/postapi/",data=d) 

在服務器端,我們正在試圖讓使用下面的代碼的參數。

def handle_post(request): 
    if request.method == 'POST': 
     key1 = request.POST.get('key1', '') 
     key2 = request.POST.get('key2', '') 
     print key1,type(key1) 
     print key2,type(key2) 
     return JsonResponse({'result': 'success'}, status=200) 

我想獲取key1和key2中的值。

預期輸出:

123,<type 'unicode'> 
[{"a":"b"},{"c":"d"}], <type 'list'> 

實際輸出:

123 <type 'unicode'> 
c <type 'unicode'> 

我們怎樣才能在Django預期的輸出?

回答

1

對於key2使用getlist

key2 = request.POST.getlist('key2', '') 

但你可能會發現更容易地將數據發送的JSON和訪問json.loads(request.body)

+0

在key2中使用getlist給出[u'a',u'c'] 而不是整個字典 – user3351750