【发布时间】:2018-06-23 05:22:16
【问题描述】:
我正在寻找使用 python/flask/flask-wtf 构建多项选择测验。我成功地从数据库中提取随机问题以及随机选择作为可能的答案。我在模板页面上使用了一个 for 循环,它首先显示问题,然后显示可能的答案。
这是我的模板。
<div class="quote-block">
{% for quote in quotes %}
{{ quote.line_text }}
<form method="POST">
{{ form.hidden_tag() }}
{{ form.question }}
<input type="submit">
</form>
{% endfor %}
</div>
我的问题是每个问题的可能答案都是相同的,并且顺序相同。我明白为什么会这样。对 RadioField 选项的数据库查询只发生一次。然后为 for 循环的每个实例提取该查询的结果。
这是我的查看路线。
@app.route('/quiz/', methods=['POST', 'GET'])
def quiz():
quotes = Quotes.query.order_by(func.rand()).limit(5)
form = Quiz()
form.question.choices = [(choice.speaker_id, choice.speaker) for choice in Characters.query.order_by(func.rand()).limit(4)]
return render_template('television/quiz.html', form=form, quotes=quotes, options=options)
还有我的表格。
class Quiz(FlaskForm):
question = RadioField('Label', choices=[])
就像我说的,所有这些都有效。我只是不知道如何为每个问题开始一个新的选择查询。任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: python flask-wtforms