我正在尝试创建一个国家/地区列表的下拉菜单,我最终会使用两次来选择两个国家/地区从数据库和图表中提取数据。使用html,jinja,python和flask
我可以从python中的SQL生成国家列表...我可以使用jinja生成html模板,创建下拉菜单。到目前为止一切都很好。
但是当我点击下拉列表时,列表会短暂显示,但列表会立即重新加载,因此无法实际选择并移至results.html。
假设陷入困境 - 可能是由于与' /'混淆和' /搜索'在路线?或者GET / POST问题?布局中有什么东西?
在国家之间似乎也是一个空白的界限,这是不容错过的!
非常感谢您的建议,请参阅search.html的摘录和application.py中的摘录可以发布更多信息
@app.route("/", methods=["GET", "POST"])
def search():
"""Choose country"""
if request.method == "POST":
# Ensure Country A was submitted
if not request.form.get("ctrya"):
return apology("must select a country for Country A", 403)
else:
return render_template("results.html")
else:
ctry_list = []
# creating drop down list for the webpage
countries = db.execute("SELECT country FROM indicators GROUP BY country")
for ctry in countries:
ctry_list.append(ctry["country"])
return render_template("search.html", country_list = ctry_list)
和html
{% extends "layout.html" %}
{% block title %}
Search
{% endblock %}
{% block main %}
<form action="/" method="post">
<div class="form-group">
<select class="form-control" name="ctrya">
<option disabled="" selected="" value="">Country A</option>
{% for ctrya in country_list %}
<option value="{{ctrya["country"]}}">{{ctrya["country"]}}
</option>
<option>{{ctrya}}</option>
{% endfor %}
</select>
</div>
<button class="btn btn-primary" type="submit">Compare countries</button>
</form>
{% endblock %}