专栏首页雪胖纸的玩蛇日常广告小程序后端开发(9.获取已发布的广告和店铺列表,获取已发布的广告和店铺详情)

广告小程序后端开发(9.获取已发布的广告和店铺列表,获取已发布的广告和店铺详情)

1.获取已发布的广告和店铺列表

1.在apps/ad/views.py中编写 获取已发布的广告或店铺列表类GetPubGoods:

class GetPubGoods(APIView):
    """获取已发布的广告或店铺列表"""
    renderer_classes = [JSONRenderer]  # 渲染器

    def get(self,request):
        page=request.GET.get('page')
        sheng=request.GET.get('sheng')
        shi = request.GET.get('shi')
        xian = request.GET.get('xian')
        tab=request.GET.get('tab')
        tab1 = request.GET.get('tab1')
        if page and tab and tab1 and xian and shi and sheng:
            # print(page,sheng,shi,xian,tab,tab1)
            page=int(page)
            tab=int(tab)
            tab1=int(tab1)
            fenlei_id=request.GET.get('fenleiid')
            if fenlei_id:
                # 分类页面发来的请求
                fenlei_id=int(fenlei_id)
                category=Category.objects.filter(id=fenlei_id).first()
                if tab1 == 1:
                    # 全省
                    num = Area.objects.filter(name=sheng).first().num
                    # print(num)
                    re_list = Good.objects.filter(area__num__gt=num, area__num__lt=(num + 10000), stage=2,
                                                  type=tab,category=category).order_by('-last_visit_time')[0:(5 * page)]
                    re = GoodModelSerializer(re_list, many=True)
                    image_list = []
                    img = {}
                    for item1 in re_list:
                        first_img = Images.objects.filter(good=item1).first()
                        img['id'] = item1.id
                        img['image'] = HOST + str(first_img.image)
                        image_list.append(img)
                        img = {}  # 没有这一句,最后图片列表中所有元素都会是最后一次对img的赋值内容
                    return Response(data=({'good': re.data, 'image_list': image_list}))
                elif tab1 == 2:
                    # 全市
                    num = Area.objects.filter(name=shi).first().num
                    # print(num)
                    re_list = Good.objects.filter(area__num__gte=num, area__num__lt=(num + 100), stage=2,
                                                  type=tab,category=category).order_by('-last_visit_time')[0:(5 * page)]
                    re = GoodModelSerializer(re_list, many=True)
                    image_list = []
                    img = {}
                    for item1 in re_list:
                        first_img = Images.objects.filter(good=item1).first()
                        img['id'] = item1.id
                        img['image'] = HOST + str(first_img.image)
                        image_list.append(img)
                        img = {}  # 没有这一句,最后图片列表中所有元素都会是最后一次对img的赋值内容
                    return Response(data=({'good': re.data, 'image_list': image_list}))
                elif tab1 == 3:
                    # 全县
                    num = Area.objects.filter(name=xian).first().num
                    # print(num)
                    re_list = Good.objects.filter(area__num=num, stage=2, type=tab,category=category).order_by('-last_visit_time')[
                              0:(5 * page)]
                    re = GoodModelSerializer(re_list, many=True)
                    image_list = []
                    img = {}
                    for item1 in re_list:
                        first_img = Images.objects.filter(good=item1).first()
                        img['id'] = item1.id
                        img['image'] = HOST + str(first_img.image)
                        image_list.append(img)
                        img = {}  # 没有这一句,最后图片列表中所有元素都会是最后一次对img的赋值内容
                    return Response(data=({'good': re.data, 'image_list': image_list}))
                else:
                    return HttpResponse('tab1参数异常')
            else:
                # 首页发起的请求
                if tab1==1:
                    # 全省
                    num=Area.objects.filter(name=sheng).first().num
                    # print(num)
                    re_list=Good.objects.filter(area__num__gt=num,area__num__lt=(num+10000),stage=2,type=tab).order_by('-last_visit_time')[0:(5 * page)]
                    re = GoodModelSerializer(re_list, many=True)
                    image_list=[]
                    img={}
                    for item1 in re_list:
                        first_img=Images.objects.filter(good=item1).first()
                        img['id'] = item1.id
                        img['image'] = HOST + str(first_img.image)
                        image_list.append(img)
                        img = {}  # 没有这一句,最后图片列表中所有元素都会是最后一次对img的赋值内容
                    return Response(data=({'good':re.data,'image_list':image_list}))
                elif tab1==2:
                    #全市
                    num = Area.objects.filter(name=shi).first().num
                    # print(num)
                    re_list = Good.objects.filter(area__num__gte=num, area__num__lt=(num + 100), stage=2,type=tab).order_by('-last_visit_time')[0:(5 * page)]
                    re = GoodModelSerializer(re_list, many=True)
                    image_list = []
                    img = {}
                    for item1 in re_list:
                        first_img=Images.objects.filter(good=item1).first()
                        img['id'] = item1.id
                        img['image'] = HOST + str(first_img.image)
                        image_list.append(img)
                        img = {}  # 没有这一句,最后图片列表中所有元素都会是最后一次对img的赋值内容
                    return Response(data=({'good': re.data, 'image_list': image_list}))
                elif tab1==3:
                    #全县
                    num = Area.objects.filter(name=xian).first().num
                    # print(num)
                    re_list = Good.objects.filter(area__num=num, stage=2,type=tab).order_by('-last_visit_time')[0:(5 * page)]
                    re = GoodModelSerializer(re_list, many=True)
                    image_list = []
                    img = {}
                    for item1 in re_list:
                        first_img=Images.objects.filter(good=item1).first()
                        img['id'] = item1.id
                        img['image'] = HOST + str(first_img.image)
                        image_list.append(img)
                        img = {}  # 没有这一句,最后图片列表中所有元素都会是最后一次对img的赋值内容
                    return Response(data=({'good': re.data, 'image_list': image_list}))
                else:
                    return HttpResponse('tab1参数异常')
        else:
            return HttpResponse('参数不足')

2.在apps/ad/urls.py中配置路由:

from django.urls import path
from .views import GetCategory,CreateAdOrShop,UpLoadImg,GetGoods,GetImgs,GetPubGoods

urlpatterns = [
    path('getcategory/',GetCategory.as_view()),
    path('createadorshop/',CreateAdOrShop.as_view()),
    path('uploadimg/',UpLoadImg.as_view()),
    path('getgoods/',GetGoods.as_view()),
    path('getimgs/',GetImgs.as_view()),
    path('getpubgoods/',GetPubGoods.as_view()),
]

2.获取已发布的广告和店铺详情

1.在apps/ad/views.py中编写 获取广告或店铺详情类 GetGoodDesc:

class GetGoodDesc(APIView):
    """获取广告或店铺详情"""
    renderer_classes = [JSONRenderer]  # 渲染器

    def get(self,request):
        good_id=request.GET.get('goodid')
        if good_id:
            good_id=int(good_id)
            good=Good.objects.filter(id=good_id).first()
            re_good=GoodModelSerializer(good)
            img_obj_list=Images.objects.filter(good=good)
            img_list=[]
            for item in img_obj_list:
                img_list.append(HOST+str(item.image))
            return Response(data=({'good':re_good.data,'image_list':img_list}))
        return HttpResponse('未收到id')

2.在apps/ad/urls.py中编写路由:

from django.urls import path
from .views import GetCategory,CreateAdOrShop,UpLoadImg,GetGoods,GetImgs,GetPubGoods,GetGoodDesc

urlpatterns = [
    path('getcategory/',GetCategory.as_view()),
    path('createadorshop/',CreateAdOrShop.as_view()),
    path('uploadimg/',UpLoadImg.as_view()),
    path('getgoods/',GetGoods.as_view()),
    path('getimgs/',GetImgs.as_view()),
    path('getpubgoods/',GetPubGoods.as_view()),
    path('getgooddesc/',GetGoodDesc.as_view()),
]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 广告小程序后端开发(14.积分商城:获取积分商品列表,获取积分商品详情)

    玩蛇的胖纸
  • 第三章 函数与变量

    玩蛇的胖纸
  • xadmin+django2.0删除用户报错,get_deleted_objects() takes 3 positional arguments but 5 were given

    玩蛇的胖纸
  • 云端工控安全保卫战

    公司发展成熟的标志在于是否拥有自己的数据中心。有些企业的数据中心集中在公司的一层或两层,而有的企业则是分散在多个地方,以实现完全冗余。

    FB客服
  • 身份证号码识别(python)

    thugliu
  • Android TV开发总结【适配】

    Android 的屏幕适配是指适配不同机顶盒 UI 框架层输出的分辨率和 dpi,而不是适配不同分辨率的电视机(电视机的适配交由机顶盒本身完成,和各个应用无关)

    先知先觉
  • PHP简单实现图片格式转换(jpg转png,gif转png等)

    开发过程中总会遇到一些需求需要对图片格式进行转换。比如 gif转png,jpg转png

    砸漏
  • C语言的前世今生,及其特点、利弊和入门须知三把斧

    C语言的开展前史: ? 20世纪70年代初,贝尔实验室的Dennis Richie 等人在B语言基础上开发C语言,最初是作为UNIX的开发语言; 20世纪70年...

    企鹅号小编
  • 文件的指针位置

    skylark
  • python 图像处理类库 PIL (一)

    缩略图方法 thumbnail(size) 的底层调用,不同的是,缩放不会改变原来数据。

    我是一条小青蛇

扫码关注云+社区

领取腾讯云代金券