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

发布于 2022-09-03 11:37:40 字数 87 浏览 6 评论 0

请教各位高手,

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

九局 2022-09-10 11:37:41

我用的 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)



烟沫凡尘 2022-09-10 11:37:41

先说一下,可以使用 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>
情深缘浅 2022-09-10 11:37:41

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文