使用Flask创建一个简单的前端,我可以在其中选择多个文件并对它们运行一些计算。
目前我使用的是以下代码,但它仅适用于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附加文件一样;
我目前正在使用Flask App Builder来使我的前端正确。
答案 0 :(得分:0)
您可以使用此HTML表单,允许用户选择多个文件:
<form method="POST" enctype="multipart/form-data" action="/upload">
<input type="file" name="file[]" multiple="">
<input type="submit" value="Upload Files">
</form>
然后在你的上传功能中使用Flask的getlist功能。
@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