django自带的filter功能只能完成正常的匹配,但是模糊匹配远远不能完成。
例如在数据库中有一个叫“红烧牛肉面”的字段,在前端get数据时,输入“红烧面”,匹配结果为空。
使用fuzzywuzzy库。
具体操作步骤:
安装fuzzywuzzy库:
pip install fuzzywuzzy
写个小例子测试一下
from fuzzywuzzy import fuzz
print(fuzz.ratio("红烧面", "红烧牛肉面"))
返回一个int型数据,范围为0-100。
接下来,在django项目中使用
menu_all_list = Menu.objects.all()
for i in menu_all_list:
value = fuzz.token_sort_ratio(text_to_search,i.name)
if value>=40:# 就放到前端显示
pass
fuzzywuzzy使用说明:https://zhuanlan.zhihu.com/p/53135935