DIY Django的JsonResponse和JsonpResponse
项目描述
django-json-response
JsonResponse是Django 1.7的新功能
参考:https://docs.django.ac.cn/en/1.8/ref/request-response/#jsonresponse-objects
安装
pip install django-json-response
警告
Since Version 1.1.3, the JsonpResponse return Object replace of String.
"{}('{}')" ==> '{}({});'
用法
from json_response import JsonResponse
def json_view(request):
objs = SomeModel.objects.all()
return JsonResponse({
'status': 200,
'message': u'成功',
'data': {
'data1': 'xxx',
'data2': 'ooo',
'objs': [obj.data for obj in objs]
}
})
or
from json_response import JsonpResponse
def jsonp_view(request):
callback = request.GET.get('callback', '')
objs = SomeModel.objects.all()
return JsonpResponse(callback, {
'status': 200,
'message': u'成功',
'data': {
'data1': 'xxx',
'data2': 'ooo',
'objs': [obj.data for obj in objs]
}
})
or
from json_response import json_response, jsonp_response, auto_response
@json_response
def json_view(request):
objs = SomeModel.objects.all()
return {
'status': 200,
'message': u'成功',
'data': {
'data1': 'xxx',
'data2': 'ooo',
'objs': [obj.data for obj in objs]
}
}
@jsonp_response
def jsonp_view(request):
objs = SomeModel.objects.all()
return {
'status': 200,
'message': u'成功',
'data': {
'data1': 'xxx',
'data2': 'ooo',
'objs': [obj.data for obj in objs]
}
}
@auto_response
def jsonp_view(request):
objs = SomeModel.objects.all()
return {
'status': 200,
'message': u'成功',
'data': {
'data1': 'xxx',
'data2': 'ooo',
'objs': [obj.data for obj in objs]
}
}