Django - 回傳 JSON 資料

Sep 30, 2017 Djnago English

Django 提供了多種回傳不同型態資料到客戶端的方式 ( 如:回傳 JSON 或 File )。當你在網路上搜尋如何透過 Django 回傳 JSON 資料,你可以得到多種不同的答案。但其實 Django 已經給了我們一個相當簡單的方式,因此本篇文章將介紹如何透過 Django 回傳 JSON 資料。



前置準備

若你還未將環境設定好,你可以使用以下指令快速建立專案:

# 安裝 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-Typeapplication/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)

需要注意的是,傳入 JsonResponse 的參數必須是要 dict 型態,不然的話 Django 會拋出錯誤。若你想要傳入其他型態的物件並輸出成 JSON 格式,你可以使用參數 safe=False

return JsonResponse(other_object, safe=False)

除此之外,你還可以使用其他的 JSON Encoder:

return JsonResponse(other_object, encoder=OtherJsonEncoder)



你也可能會喜歡:




若對於文章內容有任何建議與指正,非常歡迎你告訴我或者與我一起討論 ! :)

zeckli.devforgalaxy@gmail.com   © 2015-2019 zeckli, thanks to Jekyll and GitHub.