技巧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小时内删除。