dja*_*o-d 2 python flask python-requests
我正在尝试将文件从我的桌面上传到我在本地计算机上运行的Flask,而根本不使用网络表单.我看过两个Python 请求和海报的例子.
这是我的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()
Run Code Online (Sandbox Code Playgroud)
这是我的Python脚本中使用请求的代码
import requests
url = "http://127.0.0.1:5000/upload"
files = {'file': open('/Users/djangod/text.txt', 'rb')}
r = requests.post(url, files=files)
Run Code Online (Sandbox Code Playgroud)
我得到一个错误400,无法弄清楚为什么,但由于一些奇怪的原因运行此curl命令工作
curl -i -X POST -F files=@test.txt http://127.0.0.1:5000/upload
Run Code Online (Sandbox Code Playgroud)
我最初认为Flask配置不正确,直到curl工作.我在OS X 10.8.5上运行并使用virtualenv.任何帮助将不胜感激.提前致谢.
您的请求代码错误(可能是拼写错误).下面是什么应该工作和你有什么不同:
files = {'files': open('/Users/djangod/text.txt', 'rb')}
# ^ missing an s
Run Code Online (Sandbox Code Playgroud)
您告诉Flask要查找一个名为的文件,'files'因此您需要告诉请求将其作为文件名发送.
| 归档时间: |
|
| 查看次数: |
4035 次 |
| 最近记录: |