使用 Python 从 0 开发属于你的个人管理系统 19 篇 | 给你的系统添加全局搜索

如何让你的「任务列表」可以被搜索呢?

今天,要给你分享的是,如何在你的系统建立搜索功能,如果你对数据库熟悉,你会知道有一个叫做「索引」的东西,我们可以利用索引,快速获取到我们想要的数据。

也就是说,在创建数据模型的时候,我们可以在数据表字段中添加索引,在前端中使用表单进行 GET 请求,在后端中快速查询相关的数据返回,然后重新页面,得到用户需要的数据。

如何实现呢?

接下来给你演示一下如何让「任务列表的数据」可以被全局搜索。

我们可以使用 Flask-Whooshee 插件,它使用了索引建立和快速查询的功能。

安装 Flask-Whooshee

pipenv install flask-whooshee

安装完之后,可以在 init 中初始化它:

from flask_whooshee import Whooshee


app = Flask('mysystem')
app.secret_key = 'mysystem'

# 初始化 whooshee
whooshee = Whooshee(app)

建立索引

现在,我们希望任务列表中的具体内容可以被搜索,所以我们可以到 model 中,将 Todo 类的 description 字段建立索引,像这样使用装饰器:

本文隐藏内容 登陆 后才可以浏览
可以在 config.py 中,添加配置,比如搜索关键词最小为一个字符:

# 全文搜索
WHOOSHE_MIN_STRING_LEN = 1

OK,运行起来就是这样:

OK,这样就实现搜索功能啦!

发表回复