我怎样才能得到select>标签选项,由用户使用Flask选择
How can I get the <select> tag option chosen by the user using Flask?
我有一个用户上传csv文件的表单,该csv文件随后被转换为pandas数据框,列标题自动填充表单中的<select>
标记选项。
然后我希望用户选择他们想要的列,我希望使用Flask将该列选择保存在变量中。
但是,我在检索用户随后从这个选择标记中选择的选项时遇到了麻烦。
我的模板代码:<form class="form-horizontal" action="" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Text Analytics</legend>
<div class="form-group form-group-lg">
<label for="inputData" class="col-lg-2 control-label">Choose Data File:</label>
<div class="col-lg-5">
<input type="file" class="form-control" required="required" autofocus="autofocus" name="inputData"/>
</div>
<div class="col-lg-3">
<button class="btn btn-primary" type="submit" name="upload">Upload</button>
</div>
{% if success %}
<div class="alert alert-success">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<strong>Success!</strong> {{success}}.
</div>
{% endif %}
{% if error %}
<div class="alert alert-warning">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<strong>Error:</strong> {{error}}.
</div>
{% endif %}
</div>
<div class="form-group form-group-lg">
<label for="colSelect" class="col-lg-2 control-label">Select column for analysis:</label>
<div class="col-lg-5">
<select class="form-control" name="colSelect" id="colSelect">
{% for column in columns %}
<option id="{{column}}">{{column}}</option>
{% endfor %}
</select>
</div>
My Flask code:
@app.route('/textanalytics', methods = ['GET', 'POST'])
def upload_file():
error = None
success = None
columns = []
col = None
if request.method == "POST":
if request.files['inputData'] == '':
error = "No file selected"
else:
file = request.files['inputData']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
success = 'File uploaded'
data = pd.read_csv(os.path.join(app.config['UPLOAD_FOLDER'], filename), header = 0, low_memory = False)
columns = [i for i in data.columns]
col = request.form.get('colSelect')
return render_template('textanalytics.html', success = success, columns = columns, col = col)
elif file and not allowed_file(file.filename):
error = 'Incorrect file type, .csv only'
return render_template('textanalytics.html', error = error)
return render_template('textanalytics.html', error = error, success = success, columns = columns, col = col)
app.add_url_rule('/uploads/<filename>', 'uploaded_file', build_only=True)
app.wsgi_app = SharedDataMiddleware(app.wsgi_app, {'/uploads': app.config['UPLOAD_FOLDER']})
正如您所看到的,我使用request.form.get('colSelect')
来检索选项,但没有任何运气。它只返回None
,这是它的初始值。
我有一种感觉,这与我在哪里放置的代码,但我是新的Flask,所以可以做一些帮助。
你必须给每个option
一个value
。
<option value="{{ column }}">{{ column }}</option>
我总算弄明白了。我拿起表格,把它分成两页。因此,File Upload部分在一个名为textform1.html
的页面上以自己的形式存在。上传的文件将被转换为pandas数据框,然后将呈现一个名为textform2.html
的新页面。这个页面只包含<select>
部分,因此我能够从用户那里捕获选择。
相关文章:
- 在<选项>标签之间切换时保存输入文本
- 如何在“选项”标签上获取“名称”属性
- 将文件转换为数组并使用数据列表和选项标签为自动完成文本框添加数组元素
- 如何使用 html 选项标签并检查选择了哪个选项
- 使用多个页面的选择选项标签对 mysql 中的数据进行排序
- 可排序的 Js 在带有选择/选项标签的 chrome 中不起作用,但与 ul/li 标签一起工作
- 剑道选项标签下拉列表无法正常工作
- jquery- 在<选择>中添加<选项>标签
- 如何将数据从页面中的表单发送到其他页面中的选项标签
- 在html选择标签中,如何更改所包含选项标签的部分文本的样式
- 选项标签:如何显示多个类
- 如何使“选择”文本在下拉列表中不可见(由<选择> <选项>标签创建)
- 如何将选择的所有选项标签替换为其值
- 剑道下拉列表在下拉列表中显示选项标签
- 如何在选项标签中使用多种颜色为文本着色
- 多行HTML选项标签的变通方法是什么?
- 使用筛选函数匹配选项标签的文本
- 如何在Ionic framework的动作表单中设置条件选项标签?
- Javascript检测选项标签文本缩进功能或检测浏览器类型作为备用
- 根据选项标签创建不同的表单