【愚公系列】2022年01月 Django商城项目 24-商品列表页功能实现
文章目录
- 一、商品列表页功能实现
- 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-商品列表页功能实现相关推荐
- 【愚公系列】2022年01月 Django商城项目13-登录界面-QQ登录功能实现
文章目录 前言 1.QQ互联开发者申请 2.QQ互联应用申请 3.网站对接QQ登录 一.django实际对接流程 1.创建抽象模型类 2.创建QQ用户模型类 3.注册应用 4.配置QQ登录信息 5.登 ...
- 【愚公系列】2022年02月 Django商城项目 34-订单支付功能实现(支付宝)
文章目录 前言 一.回调逻辑处理 1.安装SDK 2.生成私钥公钥 3.setting中支付宝配置信息 4.生成支付URL 5.接收支付成功信息 前言 具体支付宝支付流程可参考这篇文章:https:/ ...
- 【愚公系列】2022年01月 华为鸿蒙OS-03-四种模式开发实操
文章目录 前言 一.使用JS语言开发(传统代码方式) 1.index页面源码 2.details页面源码 二.使用JS语言开发(低代码方式) 1.新建工程:注意选择 2.选择低代码新建页面 3.页面分 ...
- 5- vue django restful framework 打造生鲜超市 -完成商品列表页(上)
使用Python3.6与Django2.0.2(Django-rest-framework)以及前端vue开发的前后端分离的商城网站 项目支持支付宝支付(暂不支持微信支付),支持手机短信验证码注册, ...
- 2022年01月世界编程语言排行
2022年01月世界编程语言排行 2022年1月TIOBE指数 一月标题:2021年度Python编程语言 Python赢得了久负盛名的TIOBE编程语言奖.祝贺!这是连续第二次.该奖项授予一年内获得 ...
- Django项目实战——14—(列表页热销排行、商品搜索、Haystack建立数据索引、渲染商品搜索结果、商品详情页)
1.列表页热销排行 根据路径参数category_id查询出该类型商品销量前二的商品. 使用Ajax实现局部刷新的效果. 查询列表页热销排行数据 请求方式 请求参数:路径参数 响应结果:JSON {& ...
- 【愚公系列】回顾2022年技术博客的总结与展望
文章目录 前言 一.回顾2022年的活动和成就 1.2022年所做的事 2.2022年收获和成就 二.分析2022年的表现 1.过去一年优缺点分析 2.过去一年表现认同度 三.展望2023年的计划 1 ...
- 【愚公系列】(HDC.Cloud)华为开发者大会游记
文章目录 前言 一.(HDC.Cloud)华为开发者大会游记 1.受邀参加 2.开发者大会首页 3.第一天 4.第二天 5.第三天 总结 前言 HDC.Cloud华为开发者大会是由华为举办的一年一度的 ...
- 【愚公系列】华为产品测评官-开发者之声(CodeArts产品流程体验)
文章目录 前言 一.华为云CodeArts产品体验 1.软件开发生产线使用流程 1.1 配置项目 1.2 配置代码仓库 1.3 配置流水线 2.使用软件开发生产线快速搭建项目(ECS篇) 2.1 前提 ...
最新文章
- Bloomberg开源面向OCaml的JavaScript后端BuckleScript
- CV01-语义分割笔记和两个模型VGG ResNet的笔记
- [YTU]_2575( 交通工具信息)
- 算法心经:数学的应用:概率的应用
- python 消息机制_Python并发编程之线程消息通信机制任务协调(四)
- javafx动画_JavaFX:创建Sprite动画
- librtmp分析(接收数据包处理)
- JBPM4.4整合SSH2项目
- bufg和bufgp_如何将自己写的verilog模块封装成IP核(一)
- Kubernetes-卷/存储卷(emptyDir/hostPath/pv/pvc)(十)
- 元器件在线分销的探索之路
- MyEclipse中搭建spring-boot+mybatis+freemarker框架
- iOS禁止输入emoji表情
- 大数据(二)Elasticsearch 分布式搜索引擎(存索引、索引搜索)
- GridView动态添加模版列
- Java事务之八——分布式事务(Spring+JTA+Atomikos+Hibernate+JMS)
- Nachos-Lab1-完善线程机制
- 推荐一款比较不错实用的在线文本比较工具
- excel高级筛选怎么用_Excel集|高级筛选使用方法(多条件筛选)
- win10 安装docker msi主板开启虚拟化