[Python自学] day-24 (1) (组合搜索)

一、什么是组合搜索

我们在很多网站都可以找到组合搜索的功能,例如博客园、汽车之家等。

在汽车的组合搜索中,可以看到有 价格、级别、国别、品牌、结构等过滤条件。

这些条件我们可以认为都对应数据库的一张表(实际上静态的条件可以放内存)。

当我们选择条件时,页面所展示的内容要根据我们选择的条件进行过滤(对应数据库中过滤条件)。

二、如何实现的

1.观察实例

我们在选择各种过滤条件的时候,观察浏览器的URL变化:

 可以发现,当我们全部选择 "不限" 的时候,URL变为:

 list后面的所有数字全部变为0。说明,各项条件中"不限"对应的状态数字就是0。在数据库中自增ID是从1开始的,所以0用于表示ALL(即不过滤)。

当我们选择一些条件时,例如选择国别为中国,级别为微型车,可以看到URL变为:

 也就是说这些数字就代表了我们选择的条件。对应在数据库中,该条件对应的ID就是这个数字。

2.实现思路

1)页面上分别将所有的条件列举出来

2)当我们点击某个条件时,触发事件,获取所有条件对应的ID,然后串在一起。并请求页面,将串在一起的字符串作为请求URL的一部分。

3)路由系统通过正则表达式可以获取到每个条件的ID,然后通过参数传递给视图函数。

4)视图函数将获得的条件ID作为数据库查询条件,查询对应的内容。

三、实现一个简单的组合搜索

猜你喜欢

转载自www.cnblogs.com/leokale-zz/p/12166529.html
今日推荐