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 № 1Moż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)