首先介绍一点前端的东西:
在前端操作中,让用户填写一个表单,上传一个文件,是一种常见的操作。
通常前端会用一种类似下面的方式将这些信息传到后端:
------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