2016-08-06 5 views
0

複数のファイルを選択して計算を実行できるFlaskで簡単なフロントエンドを作成します。Flask App Builderで複数のファイルをアップロードする

現在のところ、私は以下のコードを使用していますが、変換が行われるのは#do somethingです。

class Sources(SimpleFormView): 
    form = MyForm 
    form_title = 'This is my first form view' 
    message = 'My form submitted' 

    def form_get(self, form): 
     form.field1.data = 'This was prefilled' 

    def form_post(self, form): 
     x = #do something 
     return self.render_template('test.html', table = x ,name='TEST') 

フォームは、基本的には、下記のように私は、パスを入力することができます:

from wtforms import Form, StringField 
from wtforms.validators import DataRequired 
from flask.ext.appbuilder.fieldwidgets import BS3TextFieldWidget 
from flask.ext.appbuilder.forms import DynamicForm 


class MyForm(DynamicForm): 
    Path = StringField(('Field1'), 
     description=('Your field number one!'), 
     validators = [DataRequired()], widget=BS3TextFieldWidget()) 

私は私のローカルマシンから複数のファイルを選択し、それらを一緒に処理しようとしています。 Gmailを使用してファイルを添付する方法とよく似ています。

  1. オプションは
  2. 開き、ファイルブラウザ
  3. ストア・ファイル・パス
  4. プロセス1および3繰り返しがしきい値を打つか、提出までのファイルパスを選択します。

私は現在フロントエンドを正しく取得するためにFlask App Builderを使用しています。あなたのアップロード機能であなたがフラスコからGETLIST機能を使用すると

<form method="POST" enctype="multipart/form-data" action="/upload"> 
    <input type="file" name="file[]" multiple=""> 
    <input type="submit" value="Upload Files"> 
</form> 

答えて

0

あなたは、ユーザーが複数のファイルを選択できるようになります。このHTMLフォームを使用することができます。

@app.route("/upload", methods=["POST"]) 
def upload(): 
    uploaded_files = flask.request.files.getlist("file[]") 
    print uploaded_files 
    return "" 

すべてのファイルのリストを入力として受け入れるためにdo something関数を追加することをお勧めします。次に、何かのようにしてください

For file in uploaded_files: 
    Process the files 
+1

私は実際にその解決策を読んでいます。しかし、私はフラスコのアプリケーションビルダーを使用しているので、デコレータとものは異なるようです。 – BernardL

+0

フラスコのアプリケーションビルダーの実装で、この回答を少し編集します。 – Harrison

+0

ありがとうございます。ありがとう!私はWebフレームワークを設計するのに問題があります。 – BernardL

関連する問題