【发布时间】:2015-08-21 12:25:12
【问题描述】:
我正在尝试获取具有不同县的 html 选择标签(从数据库中获取),当用户选择了一个县时,我想要另一个选择标签来启用并显示该县的城市(我有一个sqlite 数据库,其中县 id 在城市数据库中)。我在 Pycharm 中使用 python,带有烧瓶,但我还没有找到任何好的教程。
有没有一种简单的方法可以使用一些扩展来烧瓶?我看到了一些关于 sijax 的东西,但我一直不明白如何使用它。
我的代码是这样的,但我猜城市部分必须通过一些 javascript 东西来创建:
<div class="form-group">
<label for="inputCounty">County</label>
<select class="form-control" id="select_county" name="select_county">
<option value="">Choose county</option>
{% for county in counties %}
<option value="{{ county.id }}">{{ county.name }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<label for="inputCity">City</label>
<select class="form-control" id="select_city" name="select_city">
<option value="">Choose city</option>
{% for city in cities %}
<option value="{{ city.id }}" class="{{ city.county }}">{{ city.name }}</option>
{% endfor %}
</select>
</div>
我尝试了一个“链式”-javascipt 插件,但它不起作用,但这就是为什么我在选项标签中有类。
现在县和所有城市都被发送到 html 模板,但我认为这在以后是不可持续的,因为我想在城市中添加另一个下拉列表,所以我必须发送很多数据永远不会被使用。
【问题讨论】:
-
您可以尝试实现“占位符”-首先隐藏的下拉元素。在用户在第一个下拉列表中选择一个县后,填充并使其可见。 Flask 只会提供相应的服务。返回 html-template 和 javascript 应该完成其余的工作
-
不,Flask 绝对无法在不刷新整个页面的情况下单独执行此操作。要执行您所描述的操作,您必须将 AJAX 请求发送回服务器并使用 JavaScript 操作响应。 Jinja2 帮不了你;这就是 HTTP 的工作方式。我会以更详细的方式回答,但这个问题非常开放,我不知道你的堆栈是什么样的。
标签: javascript python sqlite drop-down-menu flask