【发布时间】:2021-06-02 03:52:56
【问题描述】:
我需要将多个文件上传到列表中的烧瓶端点。但是,当我尝试上传文件列表时,request.files 为空,即使该列表仅包含一个元素。看看这个最小的例子:
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['POST'])
def hello_world():
assert len(request.files) > 0
return 'Hello, World'
data_1 = {
'a': '42',
'file:': open('blue.jpg', mode='rb'),
'text': 'this is blue',
}
data_2 = {
'a': '42',
'gallery': [{
'file:': open('blue.jpg', mode='rb'),
'text': 'this is blue',
}],
}
client = app.test_client()
res = client.post('/', data=data_1, content_type='multipart/form-data')
assert res.status_code == 200 # all fine here
res = client.post('/', data=data_2, content_type='multipart/form-data')
assert res.status_code == 200 # fails
最后一个断言失败:
[2021-03-03 15:29:46,597] ERROR in app: Exception on / [POST]
Traceback (most recent call last):
File "/home/wsontopski/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/home/wsontopski/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/wsontopski/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/wsontopski/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/home/wsontopski/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/home/wsontopski/PycharmProjects/pythonProject1/venv/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/wsontopski/PycharmProjects/pythonProject1/main.py", line 7, in hello_world
assert len(request.files) > 0
AssertionError
Traceback (most recent call last):
File "/home/wsontopski/PycharmProjects/pythonProject1/main.py", line 27, in <module>
assert res.status_code == 200
AssertionError
你知道我该如何解决这个问题吗?
【问题讨论】:
标签: python python-3.x flask file-upload