django 怎么处理前台发送过去的json数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 怎么处理前台发送过去的json数据相关的知识,希望对你有一定的参考价值。
前台用jquery获取数据的代码为:
<script type="text/javascript">
$(function()
$('#sellerShipment').submit(function()
var data=[],item;
$('li',this).each(function()
item=;
$(':input',this).each(function()item[this.name]=this.value;);
data.push(item);
)
var json_str = JSON.stringify(data); //
//alert(json_str)///
$.post("/sellerShipment", "data="+encodeURIComponent(json_str), callback, "json");//
//return false;//要阻止表单的提交
)
function callback(json)
$('#response').html('code:'+json['status']['code'] + "\tmessage:" + json['status']['message']);
)
</script>
html代码为:
<form name='sellerShipment' id='sellerShipment' method='POST' action=''>
<ul>
<li><input value='a' name='orderId' value='11111'> <select name="shipment"><option value='ups'>usp</option></select></li>
<li><input value='a' name='orderId' value='2222'> <select name="shipment"><option value='ups'>usp</option></select></li>
</ul>
</form>
后台如何获取前台提交过去的数据呢? 我用raw_post_data获取的是原生的数据,没办法用json处理。
import django.http as djangohttp
#django第三方库
import rest_framework.views as rfview
import rest_framework.renderers as rfreader
#自定义库
import CodingPond
class IView( rfview.APIView ):
renderer_classes = ( rfreader.JSONPRenderer, )
class JSONResponse( djangohttp.HttpResponse ):
"""
An HttpResponse that renders it's content into JSON.
"""
def __init__( self, data = None, header = , **kwargs ):
content = rfreader.JSONRenderer().render( data )
print content
# content = CodingPond.Authcode_encode( content, "" )
kwargs['content_type'] = 'application/json'
super( JSONResponse, self ).__init__( content, **kwargs )
self._init_header( header )
def _init_header( self, header ):
for key, value in header.items():
self[key] = value
如此,上面是httpTools.IView接口,然后视图继承,分别重写get和post即可
"""
@attention: 分类主页
@note:
-路径: /classify/init/
-post: 无
-返回: "classify":[分类数据格式]
"""
def post( self, request ):
command = Commands.GetClassifyInfoCommand()
command.Excute()
resDic = command.GetResInfo()
return httpTools.JSONResponse( resDic ) 参考技术A json.loads不行吗? 参考技术B 自己可以写一个解析数据格式的类文件,应该可行的。
以上是关于django 怎么处理前台发送过去的json数据的主要内容,如果未能解决你的问题,请参考以下文章
前台发过去的数据为Content-Type:application/json,后台如何接收