2016-08-06 8 views
0

Создание простого интерфейса с Flask, где я могу выбрать несколько файлов и выполнить некоторые вычисления на них.Загрузка нескольких файлов с помощью Flask App Builder

В настоящее время я использую код ниже, но это полезно только для 1 файла, #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. процесс 1 и 3 повторяется до сего хита порога или представленный.

В настоящее время я использую Flask App Builder, чтобы получить свой передний конец вправо.

ответ

0

Вы можете использовать этот HTML-форму, которая позволит пользователю выбрать несколько файлов:

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

Затем в функции загрузки вы используете GetList функцию от Колба.

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

Я бы порекомендовал добавить что-то свое, чтобы принять список всех файлов в качестве ввода. Затем сделайте что-нибудь вроде

For file in uploaded_files: 
    Process the files 
+1

Я действительно прочитал это решение. Но поскольку я использую построитель флагов, декораторы и прочее кажутся разными – BernardL

+0

Я отредактирую этот ответ через некоторое время с реализацией для создания флеш-приложений. – Harrison

+0

Цените его. Благодаря! У меня возникли проблемы с созданием веб-фреймворков. – BernardL