【发布时间】:2019-05-17 17:48:33
【问题描述】:
我有一个 Pandas 数据框,并试图将列标题返回到 Flask 应用程序上的 WTForm 动态列表中。 但是,当我尝试提交 HTML 表单时,出现验证错误。这是我的表单类错误。
data = pd.read_excel("sampledata.xlsx")
col_headers = list(data.columns)
col_list = list(col_headers)
dic_list = {i : col_list[i] for i in range(0, len(col_list))}
class StatementForm(FlaskForm):
date = SelectField('Date', choices = [(key, dic_list[key]) for key in dic_list])
我已经通过在选择列表中手动输入一个元组来测试 HTML 表单并且它有效。显然问题出在“日期”参数和选项中。
非常感谢您在修改代码方面的帮助。
【问题讨论】:
-
请提供完整的回溯。
-
在您的选择理解中尝试
str(key)。以我的经验,SelectField 不喜欢整数键。 -
另外,您可以通过以下方式摆脱一些步骤:
choices = [(str(x), y) for (x, y) in list(enumerate(data.columns))]并在一行中完成所有操作。让我知道这是否有效 -
@snakecharmerb 控制台上没有什么可显示的,验证规则会阻止代码加载。这是截图pasteboard.co/IfaeH7r.png
-
@WoodyPride 有点用,因为我的表单现在显示列标题值并提交。但是我注意到,每当调用数据时,它就是输出的键或索引 ID。
form = StatementForm()date = form.date.data日期返回一个索引号
标签: python python-3.x pandas flask-wtforms wtforms