J'essaie de recevoir JSON dans la vue de Django en tant que service REST. Je sais qu'il existe des bibliothèques assez développées pour REST (telles que Cadre Django REST). Mais je dois utiliser les bibliothèques par défaut de Python / Django.
Réponses:
4 pour la réponse № 1request.POST
est pré-traité par Django, donc ce que vous voulez, c'est request.body
. Utilisez un analyseur JSON pour l'analyser.
import json
def do_stuff(request):
if request.method == "POST":
json_data = json.loads(request.body)
# do your thing
2 pour la réponse № 2
Envoyez la réponse au navigateur en utilisant HttpResponse
sans page rafraîchissante.
views.py
from django.shortcuts import render, HttpResponse,
import simplejson as json
def json_rest(request):
if request.method == "POST":
return HttpResponse(json.dumps({"success":True, "error": "You need to login First"}))
else:
return render(request,"index.html")
urls.py
(r^"/","app.views.json_rest")
côté client:
$.ajax({
type:"post",
url: "/",
dataType: "json",
success: function(result) {
console.log(result)
}
});