电子商务网站建设与实验,中贸网做的网站,长沙专业网站设计服务,中英语网站制作方法合并购物车逻辑分析 合并方向#xff1a;cookie 购物车数据合并到 Redis 购物车数据中。合并数据#xff1a;购物车商品数据和勾选状态。合并方案#xff1a; Redis 数据库中的购物车数据保留。如果 cookie 中的购物车数据在 Redis 数据库中已存在 将 cookie 购物车数据覆盖…合并购物车逻辑分析 合并方向cookie 购物车数据合并到 Redis 购物车数据中。合并数据购物车商品数据和勾选状态。合并方案 Redis 数据库中的购物车数据保留。如果 cookie 中的购物车数据在 Redis 数据库中已存在 将 cookie 购物车数据覆盖 Redis 购物车数据。如果 cookie 中的购物车数据在 Redis 数据库中不存在 将 cookie 购物车数据新增到 Redis。最终购物车的勾选状态以 cookie 购物车勾选状态为准。合并购物车逻辑实现 import base64
import pickle
from django_redis import get_redis_connectiondef merge_cart_cookie_to_redis(request, response, user):合并购物车中cookie的数据到redis:return: # 1.获取cookie的数据cookie_cart request.COOKIES.get(carts)# 2.判断数据是否存在, 如过不存在, 返回if not cookie_cart:return response# 3.如果存在, 解密cart_dict pickle.loads(base64.b64decode(cookie_cart))new_dict {} # hash: user_id:{sku_id:count}new_add []new_remove []# 4.整理格式(dict add remove)for sku_id, dict in cart_dict.items():new_dict[sku_id] dict.get(count)if dict[selected]:# truenew_add.append(sku_id)else:# falsenew_remove.append(sku_id)# 5.链接redisredis_conn get_redis_connection(carts)# 6.往hash写入(dict)redis_conn.hmset(carts_%s % user.id, new_dict)# 7.往set中增加或者删除if new_add:redis_conn.sadd(selected_%s % user.id, *new_add)if new_remove:redis_conn.srem(selected_%s % user.id, *new_remove)# 8.删除cookieresponse.delete_cookie(carts)# 9.返回return response 转载于:https://www.cnblogs.com/oklizz/p/11241129.html