如何将HTML输入传递给Flask?

8

I have this html bit:

<form action='quiz_answers'>
    <p> Question1? </p>
    <input type="radio" name="q1" value="2">Answer1</input>
    <input type="radio" name="q1" value="1">Answer2</input>
    <input type="radio" name="q1" value="0">Answer3</input>
    <input type="radio" name="q1" value="0">Answer4</input>

    <p> Question2? </p>
    <input type="radio" name="q2" value="2">Answer1</input>
    <input type="radio" name="q2" value="1">Answer2</input>
    <input type="radio" name="q2" value="0">Answer3</input>
    <input type="radio" name="q2" value="0">Answer4</input>
</form>

并且这段Python代码:

from flask import Flask, render_template, request

@app.route('/quiz')
def quiz():
    return render_template('quiz.html')

@app.route('/quiz_answers', methods=['POST'])
def quiz_answers():
    q1 = request.form['q1']
    q2 = request.form['q2']
    q4 = request.form['q4']
    q5 = request.form['q5']

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

我该如何创建一个按钮,在问题1和2回答完毕后,点击它后打开一个新的模板并显示结果?简单来说,我该如何制作一个按钮,上面写着“是的,问题已经回答完毕,请计算值并在新的HTML页面中返回它们”?
Flask快速入门教程确实涉及了HTTP请求,但并没有回答我在这种特定情况下的问题。通过谷歌搜索只得到了这个stackoverflow线程,但并没有帮助到我。
1个回答

14

你应该可以向表单中添加一个 submit 按钮来将数据响应以 POST 或 GET 的形式发送回 action

在这种情况下,你可能想要修改表单标签的定义为:

<form action="/quiz_answers" method="POST">

然后像这样添加一个提交按钮:

<input type="submit" value="Submit!" />
当用户点击时,应该生成一个 POST 请求发送回到 http://your_server/quiz_answers

1
好的,那个运行得非常完美。我已将您的答案标记为被接受的答案。:] - user2374668

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接