技巧1pythondjango 接收参数数据类型转换(数组-列表,对象-字典,json )举
例⽤法
1.接收的参数是中⽂乱码(%E7等)
django 中:
引⼊quote, 引⼊后红线处点击红⾊⼩灯,点安装。
如果提⽰引⼊失败,执⾏下边代码⼿动引⼊。
应⽤:
2.接收正常的json 字符串数据
前端⽤json.stringify()编码成字符串,传⼊后端,后端接收的时候:
3.python 模块json
如果我们想传递⼀个python对象,转换成JSON字符串(可以理解为⼀个普通的字符串,但拥有特殊的格式 ,这种格式可以⽤来转换回JSON对象)可以⽅便的传递。因为JSON对象中只能使⽤双引号"" ⽽python对象字典中可以使⽤单引号'',所以需要把python转化成json.
json.loads⽅法是把json对象转化为python对象
可以识别出字符串中的json格式:去掉引号,并变成通⽤的json,所有语⾔都识别.
json.dumps⽅法是把pyhon对象转化为json对象from urllib .parse import quote ,unquote 1python -m pip install --upgrade pip pip install quote
1
2 b = unquote (a ).decode ('utf-8')print (b )
1
2if 前端传的是字符串: 直接⽤ str =("str")elif 前端传的数组的字符串: arrstr =requvuejson转对象
("postarr") 先转成列表: arrstr.split()elif 前端传的是表单form 数组集合(post 接收): arr=list("arr") elif 前端传的对象的字符串: objstr =("postobj") 先转成字典: dic=eval(objstr)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
例:我们要创建⼀个数组catearr返回给前端,最好使⽤json对象传输,但是此时python⾥⾯写的是python对象,所以⽤json.dumps把pyhon 对象转化为json对象。
此时前端就可以⽤get直接接收:(前端是vue3框架)import json json.loads(arr4)json.dumps(arr4)
1
2
3def v3baisort (request , response =None ): catearr =[] for i in range (12): cateimg ={ "id":str (i +1), "content":"商品分类"+str (i +1), "url":"/"+str (i +1)+".png" } catearr .append (cateimg ) returndata =HttpResponse (json .dumps (catearr )) returndata ["Access-Control-Allow-Origin"] = "*" return returndata
1
2
3
4
5
6
7
8
9
10
11
12methods :{ getdata (){ var that =this ; this .$axios .get ("127.0.0.1:8000/v3baisort/") .then (function (data ){ that .catelist =data ["data"] }).catch (function (error ){ alert (error ) }) }, } 1
2
3
4
5
6
7
8
9
10
11
12
13
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论