HTTP中的请求,以及flask中的request

首先介绍一点前端的东西:

在前端操作中,让用户填写一个表单,上传一个文件,是一种常见的操作。

通常前端会用一种类似下面的方式将这些信息传到后端:

------WebKitFormBoundaryEBE0gvdaDiumD1Nj
Content-Disposition: form-data; name="data"

{"id":801,"name":"Smith"}
------WebKitFormBoundaryEBE0gvdaDiumD1Nj
Content-Disposition: form-data; name="t.py"; filename="t.py"
Content-Type: text/x-python-script


------WebKitFormBoundaryEBE0gvdaDiumD1Nj--

分析这种格式,首先可以看到,不同部分之间是使用Boundary隔离开的。

对Flask构建的后端来说,如何获取前端上传的这些信息呢?使用request即可

request对象是flask中的一个用来处理请求的对象。

当导入request对象之后:

from flask import request

就可以使用这个对象了

1 request.args.get("key") ,仅用于获取get的url中传入的参数

2 request.form.get("key", type=str, default=None) ,用于获取表单中传入的参数

3 request.values.get("key") 用于获取所有参数(推荐这种用法)

 文档中是这么写的:A CombinedMultiDict with the contents of both form and args.

4 request.files 获取上传的文件

其他更多的用法见文档

ref:http://flask.pocoo.org/docs/0.12/api/#incoming-request-data

 
posted @ 2018-04-06 20:15  geeklove  阅读(434)  评论(0编辑  收藏  举报