社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

前端数据如何被Django接受?学会这几个方法就可以了

马哥Linux运维 • 8 年前 • 627 次点击  

作者:点点寒彬

来源:

http://blog.csdn.net/wyb199026/article/details/51908450


背景


测试工具箱写到一半,今天遇到了一个前后端数据交互的问题,就一起做一下整理。


环境


版本相关

操作系统:Mac OS X EI Caption

Python版本:2.7

IDE:PyCharm

Django: 1.8.2

注: 我测试的是Get方法,POST方法也同样适用


字符型


字符型的数据相对好获取,前端传递的方法如下:

在Django的后端只要使用exporttype = request.GET.get("exporttype") 
就能正常的获取到这个数据了。

注意: 在Python2.7中数据是unicode编码的,如果要使用,有时候需要进行转str

结果示例:


数组型


获取数组型的数据如果使用获取字符串的数据的方法,打出的结果是None。我们要使用这个方法:

bugids = request.GET.getlist("bugids[]") 

这样获取的数据就是数组类型。

注意: 获取的数组中的元素是unicode编码的,在某些时候使用需要转编码

结果示例:

  • 传递的url

  • 获取的数据


字典型


字典型数据其实可以当成字符串数据来处理,获取到对应字符串后使用JSON模块做一下格式化就行了。

对于前端来说,传递字典型的数据就是传递JSON数据,所以使用的方法是:

"test": JSON.stringify({"test": "test"})

结果示例:

相关源码

  • Get方法

Get方法是wsgi里面的一个方法。

最终返回的是一个http.QueryDict(raw_query_string, encoding=self._encoding)http的原始数据,而QueryDict继承于MultiValueDict 
,所以我们直接看MultiValueDict就好了。

  • MultiValueDict

其实源码看起来并不难。

getlist方法也就是把数据全部整合一下,返回回来。


————Linux面授班即将开班————


四重优惠,万元大礼等你拿


详情,请咨询学习顾问




马哥教育三号女神,最让人相思的课程顾问


红豆

Linux面授班,报名优惠400元,名额有限,抢完为止!



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/weixin/HwkSHy78Qk
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/1954
 
627 次点击