文章目录

  • 一、商品列表页功能实现
    • 1.后台查询代码
  • 二、面包屑信息展示
    • 1.前台html代码
    • 2.实际效果
  • 三、列表页信息展示
    • 1.前台html代码
    • 2.实际效果

一、商品列表页功能实现

1.后台查询代码

from django import http
from django.shortcuts import render# Create your views here.
from django.views import Viewfrom app.contents.utils import get_categories
from app.goods.models import SKU, GoodsCategory, GoodsVisitCount
from app.goods.utlis import get_breadcrumb
from utils.response_code import RETCODE# Create your views here.
class ListView(View):def get(self,request,category_id,page_num):# 一.面包屑实现"""我们需要根据当前的分类,来获取它的上级/下级信息"""# ① 获取当前的分类try:category=GoodsCategory.objects.get(id=category_id)except Exception as e:logger.error(e)return render(request,'list.html',context={'errmsg':'没有此分类'})# ② 获取它的上级/下级# 如果是三级 3个信息# 如果是二级 2个信息# 如果是1级 1个信息breadcrumb=get_breadcrumb(category)# 二.列表数据# 1.如果有排序字段先排序sort = request.GET.get('sort')# sort = hot 人气 根据 销量排序# sort = price 价格 根据 价格排序# sort = default 默认 根据 create_time排序if sort == 'hot':order_filed = 'sales'elif sort == 'price':order_filed = 'price'else:order_filed='create_time'sort='default'# 2.根据分类id,把所有数据都查询出来skus = SKU.objects.filter(category_id=category_id, is_launched=True).order_by(order_filed)# 3.如果有分页字段再分页try:page_num=int(page_num)except Exception as e:page_num=0# 3.1 导入分页类from django.core.paginator import Paginatortry:#3.2 创建分页实例paginator = Paginator(skus,per_page=5)#3.3 获取分页数据page_skus = paginator.page(page_num)#总页数total_page=paginator.num_pagesexcept Exception as e:passcontext = {'category':category,'breadcrumb':breadcrumb,'sort': sort,  # 排序字段'page_skus': page_skus,  # 分页后数据'total_page': total_page,  # 总页数'page_num': page_num,  # 当前页码}return render(request,'list.html',context=context)

二、面包屑信息展示

1.前台html代码

<div class="breadcrumb"><a href="javascript:;">{{ breadcrumb.cat1.name }}</a><span>></span><a href="javascript:;">{{ breadcrumb.cat2.name }}</a><span>></span><a href="javascript:;">{{ breadcrumb.cat3.name }}</a>
</div>

2.实际效果

三、列表页信息展示

1.前台html代码

<div class="r_wrap fr clearfix"><div class="sort_bar"><a href="{{ url('goods:list', args=(category.id, page_num)) }}?sort=default" {% if sort == 'default' %}class="active"{% endif %}>默认</a><a href="{{ url('goods:list', args=(category.id, page_num)) }}?sort=price" {% if sort == 'price' %}class="active"{% endif %}>价格</a><a href="{{ url('goods:list', args=(category.id, page_num)) }}?sort=hot" {% if sort == 'hot' %}class="active"{% endif %}>人气</a></div><ul class="goods_type_list clearfix">{% for sku in page_skus %}<li><a href="detail.html"><img src="{{ sku.default_image.url }}"></a><h4><a href="detail.html">{{ sku.name }}</a></h4><div class="operate"><span class="price">¥{{ sku.price }}</span><span class="unit">台</span><a href="#" class="add_goods" title="加入购物车"></a></div></li>{% endfor %}</ul><div class="pagenation"><div id="pagination" class="page"></div></div>
</div>

2.实际效果

【愚公系列】2022年01月 Django商城项目 24-商品列表页功能实现相关推荐

  1. 【愚公系列】2022年01月 Django商城项目13-登录界面-QQ登录功能实现

    文章目录 前言 1.QQ互联开发者申请 2.QQ互联应用申请 3.网站对接QQ登录 一.django实际对接流程 1.创建抽象模型类 2.创建QQ用户模型类 3.注册应用 4.配置QQ登录信息 5.登 ...

  2. 【愚公系列】2022年02月 Django商城项目 34-订单支付功能实现(支付宝)

    文章目录 前言 一.回调逻辑处理 1.安装SDK 2.生成私钥公钥 3.setting中支付宝配置信息 4.生成支付URL 5.接收支付成功信息 前言 具体支付宝支付流程可参考这篇文章:https:/ ...

  3. 【愚公系列】2022年01月 华为鸿蒙OS-03-四种模式开发实操

    文章目录 前言 一.使用JS语言开发(传统代码方式) 1.index页面源码 2.details页面源码 二.使用JS语言开发(低代码方式) 1.新建工程:注意选择 2.选择低代码新建页面 3.页面分 ...

  4. 5- vue django restful framework 打造生鲜超市 -完成商品列表页(上)

    使用Python3.6与Django2.0.2(Django-rest-framework)以及前端vue开发的前后端分离的商城网站 项目支持支付宝支付(暂不支持微信支付),支持手机短信验证码注册, ...

  5. 2022年01月世界编程语言排行

    2022年01月世界编程语言排行 2022年1月TIOBE指数 一月标题:2021年度Python编程语言 Python赢得了久负盛名的TIOBE编程语言奖.祝贺!这是连续第二次.该奖项授予一年内获得 ...

  6. Django项目实战——14—(列表页热销排行、商品搜索、Haystack建立数据索引、渲染商品搜索结果、商品详情页)

    1.列表页热销排行 根据路径参数category_id查询出该类型商品销量前二的商品. 使用Ajax实现局部刷新的效果. 查询列表页热销排行数据 请求方式 请求参数:路径参数 响应结果:JSON {& ...

  7. 【愚公系列】回顾2022年技术博客的总结与展望

    文章目录 前言 一.回顾2022年的活动和成就 1.2022年所做的事 2.2022年收获和成就 二.分析2022年的表现 1.过去一年优缺点分析 2.过去一年表现认同度 三.展望2023年的计划 1 ...

  8. 【愚公系列】(HDC.Cloud)华为开发者大会游记

    文章目录 前言 一.(HDC.Cloud)华为开发者大会游记 1.受邀参加 2.开发者大会首页 3.第一天 4.第二天 5.第三天 总结 前言 HDC.Cloud华为开发者大会是由华为举办的一年一度的 ...

  9. 【愚公系列】华为产品测评官-开发者之声(CodeArts产品流程体验)

    文章目录 前言 一.华为云CodeArts产品体验 1.软件开发生产线使用流程 1.1 配置项目 1.2 配置代码仓库 1.3 配置流水线 2.使用软件开发生产线快速搭建项目(ECS篇) 2.1 前提 ...

最新文章

  1. Bloomberg开源面向OCaml的JavaScript后端BuckleScript
  2. CV01-语义分割笔记和两个模型VGG ResNet的笔记
  3. [YTU]_2575( 交通工具信息)
  4. 算法心经:数学的应用:概率的应用
  5. python 消息机制_Python并发编程之线程消息通信机制任务协调(四)
  6. javafx动画_JavaFX:创建Sprite动画
  7. librtmp分析(接收数据包处理)
  8. JBPM4.4整合SSH2项目
  9. bufg和bufgp_如何将自己写的verilog模块封装成IP核(一)
  10. Kubernetes-卷/存储卷(emptyDir/hostPath/pv/pvc)(十)
  11. 元器件在线分销的探索之路
  12. MyEclipse中搭建spring-boot+mybatis+freemarker框架
  13. iOS禁止输入emoji表情
  14. 大数据(二)Elasticsearch 分布式搜索引擎(存索引、索引搜索)
  15. GridView动态添加模版列
  16. Java事务之八——分布式事务(Spring+JTA+Atomikos+Hibernate+JMS)
  17. Nachos-Lab1-完善线程机制
  18. 推荐一款比较不错实用的在线文本比较工具
  19. excel高级筛选怎么用_Excel集|高级筛选使用方法(多条件筛选)
  20. win10 安装docker msi主板开启虚拟化

热门文章

  1. 我眼中的uee黑科技
  2. python pptx库中文文档_python-pptx使用说明
  3. Ubuntu snap应用下载加速
  4. win10 64位下Python最新版安装过程及破解
  5. 走出腾讯:一个80后技术人的信仰
  6. wwid、uuid、lun、multipath、hba、udev总结
  7. 第三方登录Google篇
  8. 泰拉瑞亚服务器搭建基于 TShockubuntu
  9. QQSG 的配置备份方法
  10. FPGA-04 触摸按键控制LED灯