本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

django で json 送受のメモ

Python のフレームワークで JSON のデータを送受したいことがあり、記述に困ったのでメモとして残しておきます。
同じように困っている人の助けになれば幸いです。

JSON をクライアントへ送信

“Data” というのはデータ保持しているクラスです。いわゆるモデルです。

from django.http.response import JsonResponse

def api(request):
    ary = []
    data = Data.objects.all()
    for d in data:
        ary.append( {"id" : "%d" % d.id, "name": d.text })
    
    return JsonResponse( {"data":ary})

JSON を受け取る

django 側が JSON を受け取る場合です。以下のコードでは受け取ったものを表示しているだけになります。

import json
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def api2(request):
    b = request.body
    data = json.loads(b)
    return HttpResponse( data )

以下のように curl からテストをした際に CSRF 関連でエラーとしてはじかれるため、CRSF 無効にするデコレータをつけています。

$ curl 'url' -d '{"data" : "hello"}' -H 'Content-Type:application/json' -x POST
プログラミング
すらりんをフォローする
すらりん日記
タイトルとURLをコピーしました