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
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)
需要注意的是,傳入 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.