我想将值从HTML的下拉框中传递给我的flask路由。下拉菜单的选定值应在URL中: 127.0.0.1:5000/switchselect/zone=be(或类似的东西)
@app.route('/switchselect/<zone>', methods= ['GET', 'POST'])
@login_required
def switchselect(zone):
if request.method == 'POST':
zone=request.form[zone]
return "zone: " + zone
else:
return redirect(url_for('index'))
在HTML中,我有:
<div class="dropdown" style="padding-top:25px">
<button class="btn btn-default dropdown-toggle" type="button" id="menu1" data-toggle="dropdown">BE <span class="caret"></span></button>
<ul class="dropdown-menu" role="menu" aria-labelledby="menu1">
<li role="presentation"><a role="menuitem" tabindex="-1" href="{{ url_for('switchselect')}}">Actual Config</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Archive</a></li>
</ul>
</div>
我试图用这种方式解决它,因为我想为页面/ switchselect /创建一个模板,而与区域无关。
那么,如何将下拉列表中所选值的值传递给烧瓶中的路线?
如果我有任何错误,请原谅我,我是Python和Flask的新手。
答案 0 :(得分:1)
您可以从a
标记中使用的url_for传递它
url_for('route_name', variable_name=variable_value)
在您的模板中
<a role="menuitem" tabindex="-1" href="{{ url_for('switchselect', zone='be')}}">Actual Config</a>
将区域值更改为要传递的值。
在下拉菜单中单击链接时,方法为GET
@app.route('/switchselect/<zone>', methods= ['GET', 'POST'])
@login_required
def switchselect(zone):
return "zone: " + zone
如果区域变量不存在,这将为您提供404。您可以提供默认参数并重定向到索引。
@app.route('/switchselect/', defaults={'zone': None})
@app.route('/switchselect/<zone>', methods=['GET', 'POST'])
@login_required
def switchselect(zone):
if zone:
return "zone: " + zone
return redirect(url_for('index'))