gpt4 book ai didi

不使用表单而只使用 Flask 作为 API 上传文件的 Python 脚本

转载 作者:行者123 更新时间:2023-11-28 21:22:20 25 4
gpt4 key购买 nike

我想从我的桌面上传一个文件到我本地机器上运行的 Flask,根本不使用网络表单。我查看了 BOTH Python 的示例 RequestsPoster .

这是我的 Flask API 的代码

from flask import Flask
from flask import request
app = Flask(__name__)

@app.route('/')
def hello_world():
return 'Hello World!'

@app.route('/upload', methods= ['GET', 'POST'])
def upload_file():
if request.method == 'POST':
f = request.files['files']
f.save('/Users/djangod/newTest.txt')
return '200'
else:
return 'Upload Page'

if __name__ == '__main__':
app.debug = True
app.run()

这是我的 Python 脚本中使用 Requests 的代码

import requests

url = "http://127.0.0.1:5000/upload"
files = {'file': open('/Users/djangod/text.txt', 'rb')}
r = requests.post(url, files=files)

我收到错误 400 并且无法弄清楚原因,但由于某些奇怪的原因运行此 curl 命令有效

curl -i -X POST -F files=@test.txt http://127.0.0.1:5000/upload

我最初认为 Flask 配置不正确,直到 curl 起作用。我在 OS X 10.8.5 上运行并使用 virtualenv。任何帮助将不胜感激。提前致谢。

最佳答案

您的请求代码有误(可能是打字错误)。以下是应该工作的和你拥有的之间的区别:

files = {'files': open('/Users/djangod/text.txt', 'rb')}
# ^ missing an s

您要告诉 Flask 寻找一个名为 'files' 的文件,因此您需要告诉请求将其作为文件名发送。

关于不使用表单而只使用 Flask 作为 API 上传文件的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19340654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com