我是flask
的初学者,我正在制作一个小型的网络刮刀应用。到目前为止我所做的已经创建了一个带有元素列表的下拉列表。现在,我希望能够在用户从列表中选择一个值时呈现另一个页面,并且我也希望将该值传递到下一页。
{% extends "base.html" %}
{% block content %}
<select id = "foo" onchange="">
{% for item in Citydata %}
<option value = {{ item.link }}> {{ item.name }} </option>
{% endfor %}
</select>
{% endblock %}
这会生成列表并添加所有链接和值。我知道应该发生的是,当选择一个选项时,选择/使用新路由并加载新模板文件。但我不知道该怎么做。
答案 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}}属性调用后端服务。