python - 如何使用烧瓶形式获取 RadioField 的值?
问题描述
我无法使用烧瓶形式获取烧瓶 SQLalchemy 中单选按钮的值。
class AnswerForm(Form):
ans = 'ddd'
your_answer = RadioField("", choices=[('ans1', 'ans1'),('ans2','q.ans2'), ('ans3','q.ans3'), ('ans4','q.ans4')])
submit = SubmitField('Answer')
路线:
@app.route('/question', methods=['GET', 'POST'])
@app.route('/question/page/<int:page>', methods=['GET', 'POST'])
def question(page=1):
# questions = Question.query.paginate(page, per_page=1)
quess = Question.query.order_by(func.rand())
quest = quess.limit(3).from_self()
questions = quest.paginate(page, per_page=1)
print('new1')
form = AnswerForm()
if request.method == 'POST':
print "submitted"
print form.ans
print form.your_answer.data
return render_template('questionview.html', title=' Quiz', questions=questions, form=form)
HTML:这是我的代码。它使用 Flask SQL alchemy 从数据库中获取问题和选项。..................................................... …………………………………………………………………………………………
<form method="POST" action="">
<div class="jumbotron text-center">
<h1>Start a test</h1>
{% for q in questions.items %}
<ul class="list-group">
<li class="list-group-item" name='que_desc'><a href="subject_test/{{q.sub_id}}">{{q.ques}}</a></li>
<div class="form-check">
<input class="form-check-input" type="radio" name="option" id="exampleRadios1" value="ans1">
<label class="form-check-label" for="exampleRadios1">
{{q.ans1}}
</label>
</div>
<br>
<div class="form-check">
<input class="form-check-input" type="radio" name="option" id="exampleRadios2" value="ans2">
<label class="form-check-label" for="exampleRadios2">
{{q.ans2}}
</label>
</div>
<br>
<div class="form-check">
<input class="form-check-input" type="radio" name="option" id="exampleRadios2" value="ans3">
<label class="form-check-label" for="exampleRadios2">
{{q.ans3}}
</label>
</div>
<br>
<div class="form-check">
<input class="form-check-input" type="radio" name="option" id="exampleRadios2" value="ans4">
<label class="form-check-label" for="exampleRadios2">
{{q.ans4}}
</label>
</div>
<br>
</ul>
<hr>
{% endfor %}
{{ form.submit(class="btn btn-outline-info") }}
</div>
</form>
解决方案
您的表单需要从请求中获取数据。代替:
form = AnswerForm()
和:
form = AnswerForm(request.form)
推荐阅读
- python-3.x - BS4:AttributeError:“NoneType”对象没有属性“文本”
- python - pybind11 如何使用 setup.py 添加 C++ 依赖项
- c++ - 将 Boost.Python 与第三方绑定混合使用
- java - 参数化 JMeter HTTP 请求路径
- python - 带有 numpy 索引的错误(?)
- jsx - JSX 条件渲染不根据状态变化更新
- swift - Xcode - 桥接头的 Swift 编译器错误
- cmake - 包含双引号和空格符的编译器选项编译
- mysql - 数据库复制在更新时非常慢
- ruby-on-rails - 如何模拟谷歌oauth的失败?