下拉列表更改时将值传递给烧瓶路径

时间:2020-02-23 01:16:36

标签: python flask

我有一个路由模板中带有默认值的烧瓶模板。我正在尝试通过在下拉列表中选择一个选项来更改值。我设法按如下方式将所选值添加到javascript。

html模板(仅下拉列表部分)

<div class="dropdown-menu scrollable-menu">
    <a class="dropdown-item" data-attVal="1" href="#">Opt 1</a>
    <a class="dropdown-item" data-attVal="2" href="#">Opt 2</a>
<div>

javascript

$(".dropdown-menu a").click(function () {
  var selText = $(this).text();
  var selVal = $(this).attr("data-attVal");

  console.log(selText+":"+selVal);
});

app.py

@app.route('/', methods=['GET','POST'])
def display():
    i = 1
    # do many things based on value of i

    return render_template('display.html', response = data)

我真的不需要JavaScript与我的flask app.py通信。那是我最初的想法。但是,我不知道如何在此之后继续进行操作,或者从我的html模板中调用路由/。我需要根据下拉列表i更改data-attVal的值。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。我不确定这是否是实现此目的的最优雅方法。

html模板 由于我不使用JS,因此删除了data-attVal自定义属性。

<div class="dropdown-menu scrollable-menu">
     <a class="dropdown-item" href="{{url_for('selectDisplay',id=0)}}">Opt1</a>
     <a class="dropdown-item" href="{{url_for('selectDisplay',id=1)}}">Opt2</a>
<div>

app.py

我创建了一条额外的路由来处理查询字符串值。

@app.route('/select', methods=['GET','POST'])
def selectDisplay():
     i = int(request.args.get('id'))
     # do things according to value of i

     return render_template('display.html', response = deserialized_bug_data['list_of_turns'])
相关问题