使用Flask验证多个单选按钮

时间:2015-04-08 02:52:42

标签: python html flask

我有这个用于向网页发送字典列表的python脚本。

from flask import Flask, render_template
from flask.ext.wtf import Form
from wtforms.fields import RadioField

app = Flask(__name__)
app.config.from_object(__name__)

class SimpleForm(Form):
    relevance = RadioField('Label', choices=[('0','A'), ('1','B'), ('2','C')])

@app.route('/',methods=['post','get'])
def hello_world():
    form = SimpleForm()
    if form.validate_on_submit():
        print form.relevance
    else:
        print form.errors

    stuff = {
            "text": "blah",
            "other": "random",
            "title": "21",
            "radios": form
        }
    stuff2 = {
            "text": "blah2",
            "other": "random2",
            "title": "22",
            "radios": form
        }
    all_stuff = {
        "mall": [stuff, stuff2]
    }
    return render_template('example.html', **all_stuff)

if __name__ == '__main__':
    app.run(debug=True)

这是example.html

<form method="post">
    {% for a in mall %}
        {{ a.other }}<br>
        {{ a.title }}<br>
        {{ a.text }}<br>
        {{ a.radios.relevance }}<br>
    {% endfor %}
    <input type="submit">
</form>

这会打印两个字典,但单选按钮就像一组单选按钮。在这里,我已经显示了2个词典,但我将拥有50个字典,我必须提交单选按钮值。我怎样才能做到这一点?每当我提交时,我都会{'csrf_token': ['CSRF token missing']}

另一件事是,为什么这种渲染单选按钮的方式会产生一个垂直的单选按钮列表?有没有办法可以获得按钮的水平表示?

1 个答案:

答案 0 :(得分:0)

&#39;无线电&#39;字段允许您只检查一个按钮。

要选择多个选项,您必须使用&#39;复选框&#39;字段。