/ / Jak otrzymać słownik w pythach danych postów - python, django, słownik, parametry, zapytanie

Jak otrzymać słownik w pythach danych postów - python, django, słownik, parametry, zapytanie

Próbuję wysłać tablicę jako parametr do api, który używa Pythona i django struktura.

Oto mój kod po stronie klienta, który jest używany do uzyskania dostępu api:

$.ajax(
type: "POST",
url:    "http://example.com/api/users",
data:   {user:{name:"Rohit Khatri", age:20, father_name:"S.K"},type:"info"},
complete: function(response) {
console.log(response);
}
);

Oto widok, w którym próbuję uzyskać dostęp do parametrów żądania

def get_users(request):
print(request.POST.get("ids"))

i kiedy próbuję uzyskać dostęp ids parametr, daje Brak. Jeśli ktoś ma taki sam problem, proszę, pomóż mi.

Odpowiedzi:

3 dla odpowiedzi № 1

Możesz spróbować uzyskać listę w następujący sposób:

request.POST.getlist("ids[]")

Uwaga: Będzie ci lepiej, jeśli wyślesz / odbierzesz swoje dane jako JSON. Najpierw musisz ustawić Accept i Content-Type nagłówki do application/json podczas wysyłania żądania, a następnie konwertowania json do obiektu Pythona za pomocą json.loads. Przykład następujący:

JavaScript / AJAX

$.ajax(
type: "POST",
url:    "http://example.com/api/users",
contentType: "application/json"
data:   {ids:[1,2,3,4,5],type:"info"},
complete: function(response) {
console.log(response);
}
);

Django

import json

def get_users(request):
ids = request.POST.get("ids")
if ids:
ids = json.loads(ids)

Aktualizacja:

Jeśli potrzebujesz bardziej skomplikowanych danych, takich jak obiekt (słownik), użyjesz json, a to będzie bardzo podobne do powyższego przykładu.

JavaScript / AJAX

$.ajax(
type: "POST",
url:    "http://example.com/api/users",
contentType: "application/json"
data:   {ids:{"x":"a", "y":"b", "z":"c"}, type:"info"},
complete: function(response) {
console.log(response);
}
);

Django

import json

def get_users(request):
ids = request.POST.get("ids")
if ids:
ids = json.loads(ids)