gpt4 book ai didi

python - 如何根据 Flask 中的单选按钮值重定向?

转载 作者:行者123 更新时间:2023-12-05 02:19:45 24 4
gpt4 key购买 nike

我是 Flask 的新手,我想做以下事情:

  1. 在我的 index.html 中有两个单选按钮和一个提交按钮:
<form action="{{ url_for('click') }}" method="POST">    
<div class="half">
<input type="radio" name="option" value="a" />
</div>
<div class="half">
<input type="radio" name="option" value="b" />
</div>
<input type="submit" value="Submit">
</form>
  1. 当点击提交按钮时,页面应该根据选择的单选按钮值重定向到另一个页面,即“a.html”。

  2. 我被这里的 python 代码困住了:

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

@app.route('/<selectedValue>', methods=['POST'])
def click():
selectedValue = request.form['option']
return redirect(url_for(selectedValue + '.html'))

如有任何建议,我们将不胜感激!

最佳答案

您的代码不起作用,因为当按下提交按钮时,您将向您的目标发送一个发布请求,该目标由模板中的 action 属性定义。但是,定义的端点需要一个 selectedValue 参数,该参数会根据您的选择而变化。您在模板中使用的 url_for() 函数无法提供该功能,因为在将模板发送到客户端时,它会呈现为纯 HTML,这意味着在做出选择之前。

尝试不同的方法:

from flask import Flask, render_template, request, redirect, url_for


app = Flask(__name__)


@app.route('/', methods=['GET', 'POST'])
def home():
if request.method == 'POST':
selectedValue = request.form['option']
return redirect(url_for('click', selectedValue=selectedValue))
return render_template('index.html')


@app.route('/<selectedValue>')
def click(selectedValue):
return render_template(selectedValue)


if __name__ == '__main__':
app.run(host='localhost', port=5000, debug=True)

通过这种方式,您将向您的home 端点发送POST 请求,并使用request 对象获取您的选项值。然后,您将调用提供 selectedValue 的重定向函数。

注意:我建议为您使用的每个模板使用单独的端点函数。

关于python - 如何根据 Flask 中的单选按钮值重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41845012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com