Web フォームをまったく使用せずに、デスクトップからローカル マシンで実行されている Flask にファイルをアップロードしようとしています。Python RequestsとPosterの両方の例を見てきました。
これが私の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()
Requestsを使用した 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)
エラー 400 が発生し、理由がわかりませんが、何らかの奇妙な理由でこの curl コマンドを実行すると機能します
curl -i -X POST -F files=@test.txt http://127.0.0.1:5000/upload
curlが機能するまで、最初はFlaskが正しく構成されていないと思っていました。OS X 10.8.5 で実行し、virtualenv を使用しています。どんな助けでも大歓迎です。前もって感謝します。