在Django中使用ajax返回json格式數(shù)據(jù)是非常常見的操作,它可以讓我們方便地在前端進(jìn)行局部刷新,提高網(wǎng)頁性能,加強(qiáng)用戶體驗(yàn)。具體實(shí)現(xiàn)過程如下:
首先,在Django的視圖函數(shù)中,需要將數(shù)據(jù)轉(zhuǎn)換為json格式,并通過HttpResponse返回:
import json from django.http import HttpResponse def my_view(request): data = {'name': 'Tom', 'age': 25} json_data = json.dumps(data) # 將Python對(duì)象轉(zhuǎn)換為json格式字符串 return HttpResponse(json_data, content_type='application/json')
接著,在前端頁面的ajax函數(shù)中,通過GET或POST方法請(qǐng)求視圖函數(shù)并獲取數(shù)據(jù),使用JSON.parse()方法將json格式字符串轉(zhuǎn)換為對(duì)象:
$.ajax({ url: '/my_view/', type: 'GET', success: function(data) { var result = JSON.parse(data); // 將json格式字符串轉(zhuǎn)換為對(duì)象 // 對(duì)數(shù)據(jù)進(jìn)行處理 } });
需要注意的是,在視圖函數(shù)中,需要指定content_type為'application/json',這樣瀏覽器才能正確解析返回的數(shù)據(jù)。而在ajax函數(shù)中,需要設(shè)置dataType為'json',這樣jQuery會(huì)自動(dòng)將從服務(wù)器返回的數(shù)據(jù)解析成JSON對(duì)象。