【Django】Django进行Ajax请求、返回json格式数据和在模板中接收并解析json的方法
一、通过Ajax请求数据
引入jQuery的代码省略
<script type="text/javascript">
// 首先进行csrf_token初始化,否则在进行Ajax请求时会报错
$.ajaxSetup({
data: {csrfmiddlewaretoken: '{{ csrf_token }}'},
});
$(document).ready(function(){
$.post(url, {id: id}, function(e){
//此时因为已经在前面设置过csrf_token,就不需要再设置了
});
});
</script>
二、后端返回json
- 首先导入
HttpResponse
和serializers
两个包
from django.http import HttpResponse
from django.core import serializers
- 在视图函数中先查询得到数据,然后处理并返回
def my_view(request):
data = myModel.objects.all()
data1 = serializers.serialize("json", data)
return HttpResponse(data1)
三、前端接受并解析json
<script type="text/javascript">
$(document).ready(function(){
$.post(url, {id: id}, function(e){
//以下是解析方法:使用eval对接收到的e进行解析,把json字符串转换成json对象,因为接收到的e只是json字符串,必须要把它解析成json对象才可以进行对象的['xxx']操作
var json_data = eval('(' + e + ')');
});
});
</script>
以上方法只是返回json格式的其中一种方法,已经在实例中得到验证。