【问题标题】:Sending a value from HTML dropdown to flask app.route将值从 HTML 下拉列表发送到烧瓶 app.route
【发布时间】:2019-12-22 18:26:50
【问题描述】:

我想将一个值从 HTML 的下拉框中传递给我在烧瓶中的路线。下拉列表的选定值应位于 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 的新手..

【问题讨论】:

    标签: python html flask


    【解决方案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'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 2017-12-26
      • 2023-04-02
      • 2020-04-16
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多