选择onchange上的Flask重定向

时间:2015-09-17 11:42:03

标签: python flask

我是flask的初学者,我正在制作一个小型的网络刮刀应用。到目前为止我所做的已经创建了一个带有元素列表的下拉列表。现在,我希望能够在用户从列表中选择一个值时呈现另一个页面,并且我也希望将该值传递到下一页。

{% extends "base.html" %}
{% block content %}
    <select id = "foo" onchange="">
        {% for item in Citydata %}
            <option value = {{ item.link }}> {{ item.name }} </option>
        {% endfor %}
    </select>   
{% endblock %}

这会生成列表并添加所有链接和值。我知道应该发生的是,当选择一个选项时,选择/使用新路由并加载新模板文件。但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

如果您要提交表单,请按照colidyre的建议。

但是,在我看来,您希望在路径中添加变量,因此您需要使用Flask的Variable Rules

目前还不清楚item.link是什么,但如果您将格式设置为与/item/1项目的ID相关联,则可以创建<a>标记,如下所示:

    {% for item in Citydata %}
        <a href = "{{ item.link }}"> {{ item.name }} </a>
    {% endfor %}

这会处理在前端正确填充href,接下来你需要在服务器上设置正确的路径来处理路径:

    @app.route('/item/<int:item_id>')
    def item_route(item_id):
        # do some stuff

注意:您不必创建<a>标记,但它比<option>更直接。要坚持使用<option>,您只需添加一些JavaScript客户端即可根据所选<option>的{​​{1}}属性调用后端服务。