django-获取购物车商品数量-redis

Posted yifengs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django-获取购物车商品数量-redis相关的知识,希望对你有一定的参考价值。

视图函数views.py中

from django_redis import get_redis_connection  # 连接redis
class IndexView(View):
    ‘‘‘首页‘‘‘
    def get(self, request):
        ‘‘‘显示首页‘‘‘
        # 获取缓存数据
        context = cache.get(index_page_data)

        if context is None:
            print(设置缓存)
            # 获取商品的种类信息
            types = GoodsType.objects.all()

            # 获取首页轮播商品信息
            goods_banners = IndexGoodsBanner.objects.all().order_by(index)

            # 获取首页促销活动信息
            promotion_banners = IndexPromotionBanner.objects.all().order_by(index)

            # 获取首页分类商品展示信息
            for type in types:  # GoodsType
                # 获取type种类首页分类商品的图片展示信息
                image_banners = IndexTypeGoodsBanner.objects.filter(type=type, display_type=1).order_by(index)
                # 获取type种类首页分类商品的文字展示信息
                title_banners = IndexTypeGoodsBanner.objects.filter(type=type, display_type=0).order_by(index)

                # 动态给type增加属性,分别保存首页分类商品的图片展示信息和文字展示信息
                type.image_banners = image_banners
                type.title_banners = title_banners

            # 组织模板上下文
            context = types: types,
                       goods_banners: goods_banners,
                       promotion_banners: promotion_banners
            # 设置缓存
            # key  value timeout
            cache.set(index_page_data, context, 3600)

        # 获取用户购物车中的商品数目
        # 获取用户登录信息
        user = request.user
        # 默认购物车数量为0
        cart_count = 0
        # 判断用户是否登录
        if user.is_authenticated():
            # 用户已登录
            conn = get_redis_connection(‘default‘)
            cart_key = ‘cart_%d‘%user.id
            cart_count = conn.hlen(cart_key)
        # 更新数据信息
        context.update(cart_count=cart_count)
        return render(request, index.html, context)

模板文件index.html

 # 购物车 #
            <div class="guest_cart fr">
                <a href="#" class="cart_name fl">我的购物车</a>
                <div class="goods_count fl" id="show_count"> cart_count </div>
            </div>

 设置cart_key的数据

hmset cart_2 1 3 2 5

 

以上是关于django-获取购物车商品数量-redis的主要内容,如果未能解决你的问题,请参考以下文章

Django电商网站--购物车设计

QQ_990814268 摘抄Django项目购物车订单

获取购物车商品名称、数量所有详细信息 woocommerce

Redis案例——商品秒杀,购物车

使用 woocommerce 在 wordpress 中获取购物车中的商品数量

如何在 Vue.js 中获取购物车商品的总价格并乘以数量