编写 HTML 表单,有 MutilpleSelect 选择框,本来也没有啥特别的,用了 Python WTForms 处理表单的 data validate,待选的数据直接默认传入 form.tags.choices = [....] 就可以了
然而上线后发现这样粗糙的方法根本招架不住,因为这个 MutilpleSelect 选择框对应选择的整个数据库的 tags 标签,而整个数据库的 tags 标签数量有几十万
这样 form.tags.choices = TagsORM.query.fetchall() 瞬间内存就爆满了
google 多方搜索,得到的也是用 Select2 (貌似 V2 这里都有用到),我仔细看过文档,发现就是采用 search 大量的数据然后将需要用的 json 数据放到页面上,但是,很多的细节,比如:
- 如果表单带有默认的 tags 该如何处理和显示
- search 大量数据是否需要优化后端的 mysql index
- 对于 Select2 这个与 WTForms 的配合,网上的资料尤其少
有同学在用 WTForms+Select2 的吗?能否分享一下看法?如果有更好的资料,麻烦丢个链接
谢谢!