前置作業
在開始之前,若你還沒將環境建立起來的話,先安裝 Django 並建立專案:
# 安裝 Django
python -m pip install Django
# 查看 Django 版本
python -m django --version
# 建立 Django 專案
django-admin startproject <project-name>
project-name/
├── project-name
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── wsgi.py
處理 JSON 請求
基本上利用 Django 處理 JSON Request 很簡單,當客戶端發起一個帶有 JSON 資料的 Request (如:POST、PUT),Django 接收到後該資料會存在於 Request 物件的 body 中。暸解後,實作起來就很簡單了,以下為範例:
import json
from django.views import View
class DummyView(View):
    def post(self, request):
        if request.body:
           # Decode data to a dict object
           json_data = json.loads(request.body)
        # Then do things with json_data ...
利用 Decorator 預先處理 JSON
利用 Django 提供的 Decorator (裝飾器) 簡化許多需要重複做的事情。首先新增 decorators.py,然後加入一個名為 dummy_json 的裝飾器,參考以下內容:
import json
from functools import wraps
from django.conf import settings
from django.http import HttpRequest, HttpResponse
def dummy_json(view_func):
    @wraps(view_func)
    def wrapper_view_func(request, *args, **kwargs):
        # Add simple validation
        if request.content_type == 'application/json':
            if request.body:
                # Decode data to a dict object
                request.json = json.loads(request.body)
            else:
                request.json = None
        return view_func(request, *args, **kwargs)
    return wrapper_view_func
import json
from decorators import *
from django.views import View
from django.utils.decorators import method_decorator
class DummyView(View):
    @method_decorator(dummy_json)
    def post(self, request):
        json_data = request.json
        # Then do things with json_data ...
Environment :
・ Unix-like System
Reference :
・ Django
