【发布时间】:2015-12-04 02:09:06
【问题描述】:
我正在尝试动态创建一个带有复选框的 Web 表单,并使用用户选择填充一个列表。例如,如果用户要从表单中选择 test1 和 test2,我希望在 python 中有一个列表 ['test1', 'test2']。
我正在使用带有 Jinja2 和 Python 的 Flask。但是,当我提交表单时,我会收到 400 消息(错误请求)。
这是相关的 Python 代码。
from flask import Flask, render_template, request, redirect
CASES = ['test1', 'test2', 'test3', 'test4']
@app.route("/")
def template_test():
return render_template('template.html', title="Home")
@app.route("/TestCases")
def TestCases():
return render_template('testcases.html', cases=CASES, title="Test Cases")
@app.route("/info", methods=['POST'])
def getinfo():
if request.method == 'POST':
test = request.form['checks']
print test
return redirect('/')
else:
return redirect('/')
这是来自模板 (testcases.html) 的相关 html 代码。
<form action="info" method="post" name="checks">
{% for c in cases %}
<input type="checkbox" name={{c}} value='checks'> {{c}}<br>
{% endfor %}
<br>
<input type="submit" value="Submit">
我对 python 并不陌生,但这是我第一次尝试使用 Flask 和 Jinja2。
【问题讨论】:
-
你在表单定义中尝试过 action="/info" 吗?
-
是的,试过了。同样的问题。