jQuery在烧瓶SQLAlchemy上进行迭代查询,将所有结果作为参数传递给html模板

时间:2018-10-26 21:20:55

标签: jquery html flask

我正在尝试使用jquery遍历我作为参数传递给模板的烧瓶sqlalchemy query.all()结果。我有数据库架构为: 客户表:ID,名称,电话

db中的客户为:

1史密斯1111111111

2琼斯2222222222

3爱德华兹3333333333

烧瓶视图:

@auth.route('/orders/add', methods=['GET', 'POST'])
@login_required
def order_add():
  custs = Customer.query.all()
  return render_template('auth/orders/order_add.html', custs=custs, form=form)

html代码:

<div class="form-group col-xs-12">
  <label class="control-label" for="cust_name">Company Name</label>
  <input class="form-control" id="cust_name" name="cust_name" type="text" list="customers" />
  <datalist id="customers">
  </datalist>
</div>

jquery代码:

$('#cust_name').keyup(function() {
  var cust = "{{ custs }}"
  if ($(this).val() != '') {
    cust.each(function(i, name, pn) {
      alert(name);
      alert(pn);
    });
  }
});

我不知道如何像FOR ...一样迭代这些结果,就像旧模板代码中那样:

<datalist id="customers">
  {% FOR cust IN custs %}
    <option>{{ cust.name }}</option>
  {% ENDFOR %}
</datalist>

我尝试过:

alert(cust.name); - didn't work
alert(cust[0]); - didn't work
alert({{ custs.name }}); - didn't work
alert("{{ cust.name }}"); - didn't work

甚至尝试过:

$('#comp_name').keyup(function() {
  var comp = '{{ comps }}';
  if ($(this).val() != '') {
    alert(comp.length);
  }
});

警报显示80,我还是不知道那一个!

如果您想知道我的最终目标是什么,一旦使此代码生效,我将创建一个文档片段,并将cust.name添加到仅使用jquery选择的数据列表中!

1 个答案:

答案 0 :(得分:0)

我放弃了这一点,将Ajax调用设置回数据库。