【发布时间】:2017-06-27 16:20:26
【问题描述】:
所以,我创建了一个烧瓶模板,可以从中上传多个文件。每种文件类型都有自己的提交按钮,根据单击的按钮,我希望运行一段不同的 Python 代码。
我的 Flask 模板的前半部分如下所示:
<h3> Upload Portfolio Data</h3>
<form action="{{ url_for('admin') }}" method="post" enctype=multipart/form-data>
<fieldset>
<label class="control-label">Select Portfolio Upload File</label>
<input id="input-1" type="file" class="file" name="portfolios">
<div class="form-group">
<button class="btn btn-default" type="submit" value = "portfolios">Upload</button>
</div>
<h3>Upload Security Lists</h3>
<label class="control-label">Select Security Upload File</label>
<input id="input-1" type="file" class="file" name="securities">
<div class="form-group">
<button class="btn btn-default" type="submit" value = "securities">Upload</button>
</div>
<table class="table" style="width:100%">
<tr>
<th>Priority </th>
<th>Target </th>
</tr>
<tr>
<h2>Transaction Priority</h2>
<td>1st</td>
<td>
<select class="form-control" name="first" style="float:left; width:150px">
<option value="asset_allocation">Asset Allocation</option>
<option value="sector">Sector</option>
<option value="region">Region</option>
<option value="security_opinion">Security Neutral</option>
<option value="security_nr">Security NR</option>
</select>
</td>
</tr>
<tr>
<td>2nd</td>
<td>
<select class="form-control" name="second" style="float:left; width:150px">
<option value="asset_allocation">Asset Allocation</option>
<option value="sector" selected ="selected">Sector</option>
<option value="region">Region</option>
<option value="security_opinion">Security Neutral</option>
<option value="security_nr">Security NR</option>
</select>
</td>
</tr>
在 Python 中,我尝试读取按钮的值,如下所示:
if request.method == "POST":
if 'portfolios' in request.form.values():
# do something
if 'securities' in request.form.values():
# do something
但不知何故,按钮的值并没有传递给 request.form.values() 函数。如果我打印 request.form 那么它有来自我表单中其他地方的值,但没有按钮的值:
ImmutableMultiDict([('second', 'sector'), ('first', 'asset_allocation'), ('fifth', 'security_nr'), ('third', 'region'), ('fourth', 'security_opinion')])
知道是什么原因造成的吗?
【问题讨论】:
-
通过使用dict方法
values(),你的意思是输入肯定有一个包含“投资组合”或“证券”的值吗?我猜这些词在keys(). -
你可以打印 request.form 来检查里面的内容吗?
-
@Leonard2:我将值附加到按钮上(参见烧瓶模板),所以我会假设它会出现?如果我更改为 request.form.keys() 问题仍然存在:( @lapinkoira:我在帖子中添加了打印信息