HTML下拉菜单将值发送到Flask应用程序路由

2024-06-28 15:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想传递一个值,从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/创建一个模板,而不考虑区域。你知道吗

那么,如何将下拉列表中所选值的值传递到flask中的路由?你知道吗

如果我犯了任何错误,请原谅,我是Python和Flask的新手。。你知道吗


Tags: urlzoneflask路由列表returnrequesthtml
1条回答
网友
1楼 · 发布于 2024-06-28 15:35:41

您可以从在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'))

相关问题 更多 >