首页 > 如何在前端根据sqlalchemy的搜索返回结果自动填写表单?

如何在前端根据sqlalchemy的搜索返回结果自动填写表单?

请教各位高手,

如何通过完成前端其中的一个表单,回车搜索后根据sqlalchemy的返回,自动完成其余的表单?哪里有代码可以借鉴下,不胜感激!


先说一下,可以使用 html5 的 datalist 来完成。
如果你数据不多可以在后台通过模板渲染出 datalist,如果数据量比较大通过 ajax 来刷新 datalist.
模板写法大概如下

<div>
    <div>
        <input type="text" list="test_list">
    </div>
    <datalist id="test_list">
        {% for t in test_list%}
        <option value="{{ t }}">
        {% endfor%}
    </datalist>
</div>

我用的 flask

比如一个 form 是这样

class NoteForm(Form):
    c_title = StringField(u'标题')
    c_note2 = StringField(u'备注')
    

模板 example.html 是这样

<html>
    <body>
        <form method = 'post' action = ''>
            {{ my_form.c_title.label }} {{ my_form.c_title() }} 
            {{ my_form.c_note.label }} {{ my_form.c_note2() }} 
            <input type='submit' value='提交'/>
        </form>
    </body>
</html>

views 里是这样

@app.route('/get_note',methods=['post','get']
def get_note():
    my_form = NoteForm()
    # 查找 note 的 id 为「1001」的 note 内容
    # T_note 表里包含 c_title 和 c_name
    result= T_note.query.filter(T_note.id == '1001').first() 
    # 下面这两部的赋值就是要实现你的目的的地方,把查询的值在后台赋给表单
    my_form.c_title = result.c_title
    my_form.c_name = result.c_name
    # 然后就是把 my_form 传到模板中去
    return render_template('example.html',my_form = my_form)




用javaScript DOM编程来实现. 监听第一个表单的回车事件, 发送ajax请求到Flask, Flask返回数据, 再用javaScript填充其他表单

【热门文章】
【热门文章】