博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Flask】关于request.json /.values /.args /.form
阅读量:7105 次
发布时间:2019-06-28

本文共 1081 字,大约阅读时间需要 3 分钟。

这篇文章和你看到的其他的可能有出入,看完了可以去试试

这个问题网上很多帖子说到,随便一搜就行。我今天说一下用Flask做后端,Vue做前端的一些经验。

跨域出门左转flask-CORS,别用JSONP,那个基本是一群技术宅hack出来的

前端请求

我这里用的是vue-resource。以POST为例

this.$http.post(    this.url,    this.form,    {
emulateJSON:true}).then(function (res) { console.log(res);})复制代码

这个{emulateJSON:true}很多讲vue-resource的博客都说让你加上,我的意见是呢,不加。 如果加了的话,header会有 Content-Type: application/x-www-form-urlencoded Flask会把它作为正常表单处理,也就是键值对。这就有个问题,传数组等数据结构会很麻烦,因为表单会对数组进行拆分传输,就不细说了,google一下很多。

不加这个,默认 Content-Type: application/json Flask会处理为json数据,这样子很多js数组和对象都可以直接被解析成json,非常方便。

我估摸那些文章应该是SPA流行起来之前写的

后端接收数据

这个地方就会涉及到用哪一个的问题。我的办法比较蠢,开debug,用postman发请求,一个个看数据什么样。

所以我就发现了和网上文章有出入的地方

首先,很多文章说values可以访问所有数据。没错,如果是post表单或者get的话。这也是前面很多人说使用{emulateJSON:true}一个原因,不用纠结啊。

表单的数据同样可以在form中访问,具体有什么区别我也忘了,估摸着应该是

values = args + form

我是写代码突然想起来写这篇文章的,懒得去测试了,如果有问题告诉我我改一下

Content-Type: application/json时,数据会全部被存放在json中,其他部分是空的。

兼容的写法

data = request.json.get('data') or request.values.get('data')复制代码

总结一哈

args: get参数 form: post表单 values: args + form json: json数据

转载于:https://juejin.im/post/5cd4f32bf265da03904c31fb

你可能感兴趣的文章
java中类加载机制
查看>>
冒泡排序
查看>>
(转)Spring读书笔记-----Spring核心机制:依赖注入
查看>>
定向爬虫 - Python模拟新浪微博登录
查看>>
排版题2
查看>>
Centos下yum安装 apache+php环境 以及redis扩赞
查看>>
Algorithm | Vector
查看>>
mysql crash cource 书中实例
查看>>
Java Basis
查看>>
让所有人都能看懂日志,解放开发
查看>>
url传值出现中文乱码的另类解决办法
查看>>
jdk、jre、spring、java ee、java se
查看>>
zabbix自动清理30天前的数据
查看>>
客户区和非客户区
查看>>
Android调用相册拍照控件实现系统控件缩放切割图片
查看>>
【转】Excel2010中绘制流程图
查看>>
"无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开"解决办法...
查看>>
【原】oracle11G AWR使用及分析
查看>>
<20190104>关掉一些鸡肋的Win10功能
查看>>
iOS网络篇4-利用NSURLConnection实现GET/POST/HEAD请求
查看>>