を削除 djangoからの情報を取得するために、djangoのシリアル化関数は非常に役に立ちます。 Hereはそのためのdjangoドキュメントです。
[
{
pk: 1,
model: "store.item",
fields: {
name: "some_name",
price: 20,
quantity: 1000
}
},
// more items here
]
をする必要があります。このAndroidアプリのために新しいアイテム
の追加:
#views.py
from django.core import serializers
import json
def item_all(request):
items = Item.objects.all()
data = serializers.serialize("json", items)
return HttpResponse(data, mimetype="application/json")
これが何を行いますと、そうのような全ての項目でJSON配列を返すですJSONオブジェクトをdjangoに送ります。
JSONオブジェクト:
{ data:
{
name: "some_name",
price: 40,
quantity: 2000
}
}
は、だから今、あなたのDjangoのアプリは新しいアイテムを作成するために、要求からの情報を解析することがあります。
#views.py
def item_new(request):
# the request type has to be POST
if request.method != "POST":
return HttpResponseBadRequest("Request has to be of type POST")
postdata = request.POST[u"data"]
postdata = json.loads(postdata)
item = Item()
item.name = postdata["name"]
item.price = postdata["price"]
item.quantity = postdata["quantity"]
item.save()
data = serializers.serialize("json", [item])
return HttpResponse(data, mimetype="application/json")
いくつかの注意:
注意POST要求タイプの使用。これはREST APIにとって非常に重要です。基本的には、要求のタイプに応じて、異なるアクションが実行されます。これは次の視点でもっと鮮明になるでしょう。
、取得、更新、および
#views.py
def item(request, item_id):
item = get_object_or_404(Item, pk=item_id)
if request.method == "GET":
data = serializers.serialize("json", [item])
return HttpResponse(data, mimetype="application/json")
elif request.method == "POST":
postdata = request.POST[u"data"]
postdata = json.loads(postdata)
item.name = postdata["name"]
item.price = postdata["price"]
item.quantity = postdata["quantity"]
item.save()
data = json.dumps(True)
return HttpResponse(data, mimetype="application/json")
elif request.method == "DELETE":
item.delete()
data = json.dumps(True)
return HttpResponse(data, mimetype="application/json")
else:
return HttpResponseBadRequest("Invalid request")
を削除それでは、この方法がなると、異なる要求の種類に応じて異なるアクションを行うことです。これは非常に、非常に簡単なデモであることを
コメント
注意。エラーチェックやユーザー認証などは考慮されていませんが、うまくいけばそれはあなたにいくつかのアイデアを与えるでしょう。