Ich versuche, Array als Parameter an die API zu senden, die Python und verwendet django
Rahmen.
Hier ist mein clientseitiger Code, der für den Zugriff auf die verwendet wird 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);
}
);
Hier ist die Ansicht, in der ich versuche, auf die Anforderungsparameter zuzugreifen
def get_users(request):
print(request.POST.get("ids"))
und wenn ich versuche zuzugreifen ids
Parameter, Es gibt keine. Wenn jemand das gleiche Problem hat, helfen Sie mir bitte.
Antworten:
3 für die Antwort № 1Sie können versuchen, die Liste wie folgt abzurufen:
request.POST.getlist("ids[]")
Hinweis: Sie werden es besser haben, wenn Sie Ihre Daten als senden / empfangen JSON
. Sie müssen zuerst die Accept
und Content-Type
Header zu application/json
während Sie die Anfrage senden und dann das json-Objekt mit in ein Python-Objekt konvertieren json.loads
. Beispiel wie folgt:
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)
Aktualisieren:
Für den Fall, dass Sie kompliziertere Daten wie ein Objekt (Wörterbuch) verwenden müssen, ist die Verwendung von Json die beste Wahl, und es funktioniert ähnlich wie im obigen Beispiel.
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)