Esempio n. 1
0
    def delete_model(self, request, obj):
        super().delete_model(request, obj)

        from celery_tasks.tasks import generate_static_index_html
        generate_static_index_html.delay()

        cache.delete('index_page_data')
Esempio n. 2
0
    def get(self, request):
        """显示"""
        # 先判断缓存中是否有数据,没有数据不会报错返回None
        context = cache.get('index_page_data')

        # 查询商品的分类信息
        types = GoodsType.objects.all()
        # 获取首页轮播的商品的信息
        index_banner = IndexGoodsBanner.objects.all().order_by('index')
        # 获取首页促销的活动信息
        promotion_banner = IndexPromotionBanner.objects.all().order_by('index')

        # 获取首页分类商品信息展示
        for type in types:
            # 查询首页显示的type类型的文字商品信息
            title_banner = IndexTypeGoodsBanner.objects.filter(
                type=type, display_type=0).order_by('index')
            # 查询首页显示的图片商品信息
            image_banner = IndexTypeGoodsBanner.objects.filter(
                type=type, display_type=1).order_by('index')
            # 动态给type对象添加两个属性保存数据
            type.title_banner = title_banner
            type.image_banner = image_banner

        # 组织上下文
        context = {
            'types': types,
            'index_banner': index_banner,
            'promotion_banner': promotion_banner,
        }

        if context is None:
            # 设置缓存数据,缓存的名字,内容,过期的时间
            cache.set('index_page_data', context, 3600)

        if context != cache.get('index_html_data'):
            generate_static_index_html.delay()

        # 获取user
        user = request.user
        # 获取登录用户的额购物车中的商品的数量

        cart_count = 0
        if user.is_authenticated:
            # 用户已经登录
            conn = get_redis_connection('default')
            cart_key = 'cart_%d' % user.id

            # 获取用户购物车中的商品条目数
            cart_count = conn.hlen(cart_key)  # hlen hash中的数目

            context.update(cart_count=cart_count)
        context = {
            'types': types,
            'index_banner': index_banner,
            'promotion_banner': promotion_banner,
            'cart_count': cart_count
        }

        return render(request, 'index.html', context)
Esempio n. 3
0
    def save_model(self, request, obj, form, change):
        super(BaseModelAdmin, self).save_model(request, obj, form, change)
        from celery_tasks.tasks import generate_static_index_html
        generate_static_index_html.delay()

        # 清除首页缓存数据
        cache.delete('index_page_data')
Esempio n. 4
0
 def save_model(self, request, obj, form, change):
     '''重写save方法,加上保存后要执行的语句'''
     super().save_model(request, obj, form, change)
     # 发出任务让celety worker重写生成首页静态
     generate_static_index_html.delay()
     #清除首页的缓存内容
     cache.delete('index_page_data')
Esempio n. 5
0
 def delete_model(self, request, obj):
     '''重写delete方法,加上删除表中数据后的语句'''
     super().delete_model(request, obj)
     # 发出任务让celety worker重写生成首页静态
     generate_static_index_html.delay()
     # 清除首页的缓存内容
     cache.delete('index_page_data')
Esempio n. 6
0
    def delete_model(self, request, obj):
        '''删除表中数据时调用'''
        super().delete_model(request, obj)
        generate_static_index_html.delay()

        # 清除首页的缓存数据
        cache.delete('index_page_data')
Esempio n. 7
0
    def delete_model(self, request, obj):
        """删除表中数据时调用"""
        super().delete_model(request, obj)

        generate_static_index_html.delay()

        cache.delete('index_page_data')
Esempio n. 8
0
 def delete_model(self, request, obj):
     '''删除表中的数据时调用'''
     super().delete_model(request, obj)
     # 发出任务,让celery worker重新生成首页静态页
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     cache.delete('index_page_data')
Esempio n. 9
0
    def delete_model(self, request, obj, form, change):
        '''删除表中的数据时调用'''
        super.delete_model(request, obj, form, change)

        # 发出任务, 让celery worker  重新生成首页静态页
        from celery_tasks.tasks import generate_static_index_html
        generate_static_index_html.delay()
Esempio n. 10
0
 def save_model(self, request, obj, form, change):
     # 运营人员添加或更新数据时会走的方法
     obj.save()
     # 数据一旦改变 就要生成新的静态页面
     generate_static_index_html.delay()
     #把缓存数据删除
     cache.delete('indexpage_static_cache')
Esempio n. 11
0
 def delete_model(self, request, obj):
     """删除表中数据时调用"""
     super().delete_model(request, obj)
     # 发出任务,重新生成首页静态页面
     generate_static_index_html.delay()
     # 清除缓存数据
     cache.delete('index_page_data')
 def delete_model(self, request, obj):
     '''在删除模型类表中数据时使用'''
     super().delete_model(request, obj)
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     # 删除缓存
     cache.delete('index_page_data')
 def save_model(self, request, obj, form, change):
     '''在新增或修改模型类表时应用'''
     super().save_model(request, obj, form, change)
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     # 删除缓存,由于view中缓存若不存在会生成,因此无需在此生成
     cache.delete('index_page_data')
 def delete_model(self, request, obj):
     '''删除表中的数据时调用'''
     super().delete_model(request, obj)
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     print("删除后后静态页面生成")
     cache.delete('index_page_data')
 def save_model(self, request, obj, form, change):
     '''新增或更新时调用'''
     super().save_model(request, obj, form, change)
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     print("新增后静态页面生成")
     cache.delete('index_page_data')
Esempio n. 16
0
 def delete_model(self, request, obj):
     """管理员在管理后台删除数据后,会执行此方法"""
     super().delete_model(request, obj)
     # 重新生成首页静态页面
     generate_static_index_html.delay()
     # 删除缓存数据
     cache.delete('index_page_data')
Esempio n. 17
0
 def save_model(self, request, obj, form, change):
     super().save_model(request, obj, form, change)
     # 后台操作数据时生成首页的静态页面
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     # 清除缓存数据
     cache.delete('index_page_data')
Esempio n. 18
0
 def save_model(self, request, obj, form, change):
     '''新增或更新表中数据时调用'''
     super().save_model(request, obj, form, change)
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     # 清除首页静态页面的缓存
     cache.delete('index_page_data')
Esempio n. 19
0
 def save_model(self, request, obj, form, change):
     # 保证IndexPromotionBanner可以实现数据的存储,而不会被覆盖
     obj.save()
     # 触发异步任务
     print('gen index.html')
     generate_static_index_html.delay()
     cache.delete('index_page_data')
Esempio n. 20
0
 def delete_model(self, request, obj):
     """删除表中的数据时调用"""
     super().delete_model(request, obj)
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     # 清除首页缓存的数据
     cache.delete('index_page')
Esempio n. 21
0
 def delete_model(self, request, obj):
     # 运营人员删除数据时会走的方法
     obj.delete()
     # 数据一旦改变 就要生成新的静态页面
     generate_static_index_html.delay()
     # 把缓存数据删除
     cache.delete('indexpage_static_cache')
Esempio n. 22
0
    def save_model(self, request, obj, form, change):
        """新增或更新表中的数据时调用"""
        super().save_model(request, obj, form, change)

        # 发出任务,让celery worker重新生成首页静态页
        from celery_tasks.tasks import generate_static_index_html
        generate_static_index_html.delay()
Esempio n. 23
0
 def save_model(self, request, obj, form, change):
     """管理员在管理后台新增/修改了数据后,会执行此方法"""
     super().save_model(request, obj, form, change)
     # 重新生成首页静态页面
     generate_static_index_html.delay()
     # 删除缓存数据
     cache.delete('index_page_data')
Esempio n. 24
0
 def save_model(self, request, obj, form, change):
     """新增或更新表中的数据时调用"""
     super().save_model(request, obj, form, change)
     # 发出任务
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     # 清除缓存数据
     cache.delete("index_page_data")
Esempio n. 25
0
    def save_model(self, request, obj, form, change):
        """新增或更新表中数据时调用"""
        super().save_model(request, obj, form, change)  # 继承父类原有操作
        from celery_tasks.tasks import generate_static_index_html
        generate_static_index_html.delay()  # 生成静态页面

        # 首页数据改变时,清除首页数据缓存, 在请求页重新请求并设置缓存
        cache.delete('index_page_data')
Esempio n. 26
0
    def save_model(self, request, obj, form, change):
        """新增或更新表中的数据时调用"""
        super().save_model(request, obj, form, change)
        # 发出任务,让celery tasks重新生成静态页面
        generate_static_index_html.delay()

        # 清除首页的缓存数据
        cache.delete("index_page_data")
Esempio n. 27
0
 def save_model(self, request, obj, form, change):
     """新增或更新数据表数据是调用"""
     super().save_model(request, obj, form, change)
     # 发出任务,让celery worker重新生成静态页面
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     # 清除首页的缓存数据
     cache.delete('index_page_data')
Esempio n. 28
0
 def delete_model(self, request, obj):
     """删除表中的数据时调用"""
     super().delete_model(request, obj)
     # 发出任务, 让celery worker重新生成静态页
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     # 清除数据
     cache.delete("index_page_data")
Esempio n. 29
0
 def save_model(self, request, obj, form, change):
     '''新增或更新表中的数据时调用'''
     super().save_model(request, obj, form, change)
     #发出任务,让celery worker 重新生成静态页面
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     #清除首页缓存存储
     cache.delete('index_page_data')
Esempio n. 30
0
 def delete_model(self, request, obj):
     '''删除表中的数据时调用'''
     super(IndexPromotionBannerAdmin, self).delete_model(request, obj)
     # 发出任务,让celery worker 重新生成静态页面
     from celery_tasks.tasks import generate_static_index_html
     generate_static_index_html.delay()
     # 清除首页缓存存储
     cache.delete('index_page_data')
Esempio n. 31
0
    def delete_model(self, request, obj):
        """admin站点在模型删除数据的时候调用"""
        # 从数据库中删除
        obj.delete()

        # 调用生成静态页面的celery异步任务
        generate_static_index_html.delay()

        # 清除主页的缓存数据
        cache.delete("index_page_data")
Esempio n. 32
0
    def save_model(self, request, obj, form, change):
        """admin站点在模型保存数据的时候调用"""
        # obj是要保存的模型对象(models里的类的对象)
        # 将数据保存到数据库中
        obj.save()

        # 调用生成静态页面的celery异步任务
        generate_static_index_html.delay()

        # 清除主页的缓存数据
        cache.delete("index_page_data")