【Flask】关于request.json /.values /.args /.form

栏目: Python · 发布时间: 6年前

内容简介:这篇文章和你看到的其他的可能有出入,看完了可以去试试这个问题网上很多帖子说到,随便一搜就行。我今天说一下用Flask做后端,Vue做前端的一些经验。跨域出门左转flask-CORS,别用JSONP,那个基本是一群技术宅hack出来的

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

这个问题网上很多帖子说到,随便一搜就行。我今天说一下用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数据


以上所述就是小编给大家介绍的《【Flask】关于request.json /.values /.args /.form》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人工智能

人工智能

(美)GeorgeF.Luger / 郭茂祖;刘扬;玄萍;王春宇 / 机械工业出版社 / 2010-1 / 79.00元

《人工智能复杂问题求解的结构和策略(原书第6版)》是一本经典的人工智能教材,全面阐述了人工智能的基础理论,有效结合了求解智能问题的数据结构以及实现的算法,把人工智能的应用程序应用于实际环境中,并从社会和哲学、心理学以及神经生理学角度对人工智能进行了独特的讨论。新版中增加了对“基于随机方法的机器学习”的介绍,并提出了一些新的主题,如涌现计算、本体论、随机分割算法等。 《人工智能复杂问题求解的结......一起来看看 《人工智能》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具