Python Flask:返回的文件不可读

Python Flask : Returned file is not readable

在 python flask 中实现 rest API 时,我使用了几个选项来 return 文件(任何类型),读取它并将其保存到请求的本地存储库但遇到如下多个错误:

案例 1:

def download_file(): return send_file('any_file.pdf') r = requests.get(url = 'http://localhost:5000/download').read()

响应错误响应对象没有属性read/text/content

案例二:

def download_file(): file = open('any_file.pdf','r').read() return file r = requests.get(url = 'http://localhost:5000/download')

已响应错误 Return 不接受此

所以我该怎么做,因为 flask 不允许 return 没有响应对象的文件,并且响应对象不可读并且不支持直接保存该文件。

Case 1 中的 Flask server 代码是正确的。一个更完整的例子:

@app.route('/download')
def download_file():
    # Some logic here
    send_file('any_file.pdf')

但是 requests.get 返回的 Response 对象没有 read 方法。正确的方法是使用:

Response.content: Content of the response, in bytes.

所以,客户端代码应该是:

r = requests.get('http://localhost:5000/download')
bytes = r.content

# Now do something with bytes, for example save it:

with open('downloaded_file.ext', 'wb') as f:
    f.write(bytes)