django開發系列:視圖高級之JsonResponse用法
JsonResponse
如果不用JsonResponse,我們一般的做法是,將字典dumps
成json
字符串,然後返回將json字符串封裝成Response對象返回給瀏覽器。並且他的Content-Type是application/json
。代碼如下:
def jsonresponse_view(request):
persons = {
'username': 'zhiliao',
'age': 18,
'height': 180
}
person_str = json.dumps(person)
response = HttpResponse(person_str,content_type='application/json')
return response
使用JsonResponse,代碼就可以簡化:
from django.http import JsonResponse
def index(request):
persons = {
'username': 'zhiliao',
'age': 18,
'height': 180
}
return JsonResponse(persons)
默認情況下JsonResponse
只能對字典
進行dumps,如果想要對非字典
的數據進行dumps,那麼需要給JsonResponse傳遞一個safe=False
參數。
from django.http import JsonResponse
def index(request):
persons = ['張三','李四','王五']
return HttpResponse(persons)
以上代碼會報錯,應該在使用HttpResponse的時候,傳入一個safe=False參數
return HttpResponse(persons,safe=False)