2017年9月27日

Django 實作教學 - 回傳 JSON 資料 ( Django - Return a JSON response )

處理完用戶端請求後 Django 提供多種回傳資料的方式,JSON 格式則是其中一種,你在網路上也可以找到各種不同回傳 JSON 資料的方式。其實 Django 本身就提供了一個相當簡單的方法,因此本篇就將介紹如何透過 Django 回傳 JSON 資料。(其他 Django 相關教學可以參考本篇整理。If you want to read this article in English, you can visit here)



前置作業
在開始設定之前,若你還沒將環境建立起來的話,先安裝 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


使用 JsonResponse
Django 從 1.7 版本就提供了 JsonResponse 這個相當方便的物件讓我們回傳 JSON 資料。首先,它會將 Content-Type 設定成 application/json,最後再將你傳入的參數轉成 JSON 格式並回傳。使用方式如下:
from django.http import JsonResponse
from django.views import View

class SandboxHandler(View):
    def get(self, request):
        data = {
            'name': 'Django',
            'version': '1.x'
        }
        return JsonResponse(data)
值得注意的是,預設可傳入的參數必須是要 dict 型態。若你想要傳入其他型態的物件並輸出成 JSON 格式,你可以加上 safe=False:
return JsonResponse(other_object, safe=False)
最後,若你不想使用內建的 JSON Encoder,你可以自行指定其他的 Encoder:
return JsonResponse(other_object, encoder=OtherJsonEncoder)


Environment :
  ・ Unix-like System
Reference :
  ・ Django

熱門文章