Python 怎么解析 Multipart 数据

2019-09-17 14:22:36 +08:00
 Loneyer

例如:

------WebKitFormBoundaryHqeRA6k14YbNBQoh
Content-Disposition: form-data; name="id"

1
------WebKitFormBoundaryHqeRA6k14YbNBQoh
Content-Disposition: form-data; name="text"

test
------WebKitFormBoundaryHqeRA6k14YbNBQoh
Content-Disposition: form-data; name="button"

提交
------WebKitFormBoundaryHqeRA6k14YbNBQoh--

怎么提取里面的参数值 id=1 text=test button=提交

2689 次点击
所在节点    Python
4 条回复
l4mbda
2019-09-17 15:33:33 +08:00
```
from flask import Flask,request

app = Flask(__name__)

@app.route('/upload', methods=['POST', 'GET'])
def upload():
if request.method == 'POST':
#print(request.headers)
#print(request.form)
temp_info = request.form
id_field = temp_info['id']
text_field = temp_info['text']
button_field = temp_info['button']
return "OK"
```

用 flask 的 request 试下。
arrow8899
2019-09-17 15:37:38 +08:00
web 服务器基本都实现了的,怎么取看你用的那个框架
cabbage
2019-09-17 22:13:46 +08:00
aiohttp 有简单实现,可以参照这个 https://stackoverflow.com/a/57264428/7378423

另吐槽下 V2EX 回复不能直接 markdown 挺不方便的,楼上 python 缩进全乱了,游标卡尺都救不了
Loneyer
2019-09-18 11:32:31 +08:00
@cabbage 我这里用 requests 抓包到了以下数据:

------WebKitFormBoundaryHqeRA6k14YbNBQoh
Content-Disposition: form-data; name="id"

1
------WebKitFormBoundaryHqeRA6k14YbNBQoh
Content-Disposition: form-data; name="text"

test
------WebKitFormBoundaryHqeRA6k14YbNBQoh
Content-Disposition: form-data; name="button"

提交
------WebKitFormBoundaryHqeRA6k14YbNBQoh--


解析里面的参数。id=1 text=test button=提示 .

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/601512

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX