Django 项目总结-用户浏览历史记录

用户浏览历史记录

保存浏览历史

用户在访问每个商品详情页面时,都要记录浏览历史记录

历史记录中只需要保存多个商品的 sku_id 即可,而且需要保持添加 sku_id 的顺序,采用 redis 中列表来保存

根据接口,前端每次访问详情页时会带上当前商品的 sku_id 来访问后端 POST

后端写序列化器和视图,认证权限,用户必须登录

判断 sku_id 是否存在,调用 create 方法进行创建

取出商品 id 和 用户 id,取到对应的 redis 数据库对象

在这里要对数据库进行多次操作,为了提高效率,使用 redis 中 pipeline 方法将所有操作 redis 的语句集中在一起,最后只需要访问一次 redis 数据库即可

先移除已经存在的本商品浏览记录, 使用 list 的命令该命令可以根据传入的 count 和 value 自动移除和 value 值相同的数据

添加新的浏览记录,最新的数据要保存在前面,所以在列表中要从左边插入数据,使用命令可以将数据从左边插入

历史记录肯定不是展示所有,这里设置只展示 5 条,使用 list 的命令可以做到这样

LTRIM key start stop

对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

执行命令 pl.execute() ,将对 redis 数据库的操作进行执行,保存成功

查看历史浏览记录

这是在用户个人中心中显示的

用户进入个人中心时,添加访问浏览历史记录的接口 GET

后端编写 get 方法,用来返回数据

取出当前 user_id

链接 redis 数据库,根据 user_id 查询所有的浏览历史记录,使用命令

LRANGE key start stop

返回列表中指定区间内的元素,区间以偏移量和指定

遍历取得每个商品对象,将数据序列化然后返回,前端进行展示

- End -

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181208G05PJW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券