JavaScriptからFlaskにファイルと何らかの値を一緒にPOSTしたい時に少し悩み、最終的に以下のようなコードで実現できました。
ポイントはFlaskでrequest.filesとrequest.valueを使い分けるところです。
javascript(クライアント側)
... var fd = new FormData(); fd.append('file', file_object); //POSTしたいファイルオブジェクト fd.append('index', index); //POSTしたい値 ... $.ajax({ ... data: fd, ... })
Flask(サーバ側)
... file = request.files['file'] index = request.values["index"] ...