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

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

内容简介:这篇文章和你看到的其他的可能有出入,看完了可以去试试这个问题网上很多帖子说到,随便一搜就行。我今天说一下用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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

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

An Introduction to the Analysis of Algorithms

An Introduction to the Analysis of Algorithms

Robert Sedgewick、Philippe Flajolet / Addison-Wesley Professional / 1995-12-10 / CAD 67.99

This book is a thorough overview of the primary techniques and models used in the mathematical analysis of algorithms. The first half of the book draws upon classical mathematical material from discre......一起来看看 《An Introduction to the Analysis of Algorithms》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

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

HEX HSV 互换工具