版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gavinsun/article/details/88950464
购物车简介
功能:临时存放要购买的商品。
特点:结算后,对应购物车中的物品要被移除。
数据结构:用户ID,商品ID,商品数量,商品规格(可选)
注意事项
-
购物车排序:加入购物车时间排序,如果有店铺,需要按店铺分组
-
库存判断:结算时判断或调整数量时实时判断
-
商品下架:要把购物车里的商品状态设置为失效
-
购物车可以放在缓存数据库中,例如:Redis。值得说明的是Django支持使用Redis缓存session。所以,在Django中,我们可以把购物车直接放在session中,然后配置使用redis存储session。
-
只使用cookie保存购物车数据时行不通的,因为不能实现多终端同步,要实现多终端同步,必须配合后端的数据存储技术。
在Django中,不管session还是具体的数据库表,都属于后端存储技术。只不过,Django中的session默认是存储在数据库表中的,我们可以很方便修改它的存储介质,例如修改成Redis或Memcached。
某东购物车的实现
-
未登录状态,product_id(商品id) ,sku_Id(库存),buy_num(购买数量)添加到cookie中
-
登录后,把cookie中保存的购物车合并到后台购物车数据库中,并把cookie中的购物车删除。
(想一想:问什么要把cookie中的购物车删除呢?)
参考资料
https://github.com/diefenbach/django-lfs/blob/master/lfs/cart/models.py
https://github.com/muvatech/Shopping-Cart-Using-Django-2.0-and-Python-3.6/blob/master/cart/cart.py