96SEO 2026-06-15 07:55 25
哈哈,咱就是说今天咱们来聊聊如何用Django实现电商平台商品列表页,你懂的,这可是个关键页面!
商品列表页的核心功Neng说实话,商品列表页的核心功Neng就那么几个:

默认展示所有上架SKU,按创建时间倒序排列。
支持按分类筛选:通过URL查询参数?category_id=过滤该分类及其子分类下的商品。
分页展示:每页12个商品,底部生成Bootstrap风格的分页导航。
商品卡片:显示主图、名称、价格、销量等信息,点击跳转到SPU详情页。
排序暂时留到后面这里保持简单。
实现思路我们将使用Django的ListView来快速构建,但为了geng灵活地处理分类筛选,还是采用函数视图+Paginator手写。
编辑apps/products/views.py,在Yi有内容基础上追加:
from django.core.paginator import Paginator, EmptyPage, PageNotAnIntegerfrom .models import SKU, Categorydef sku_list: # 获取所有上架SKU,预加载关联数据,减少数据库查询 skus = SKU.objects.filter.select_related.prefetch_related.order_by # 分类筛选 category_id = request.GET.get if category_id: try: category = Category.objects.get # 获取该分类及其所有子分类的ID列表 category_ids = # 简单处理两级分类:查找子分类 children = Category.objects.filter category_ids.extend) # 过滤出属于这些分类的SPU的SKU skus = skus.filter except Category.DoesNotExist: # 分类不存在时返回空列表 skus = skus.none # 分页:每页12个 paginator = Paginator page_number = request.GET.get try: page_obj = paginator.page except PageNotAnInteger: page_obj = paginator.page except EmptyPage: page_obj = paginator.page # 传递当前分类信息供模板使用 current_category = None if category_id: try: current_category = Category.objects.get except Category.DoesNotExist: pass return render
代码要点:
select_related连表查询SPU和分类,避免循环查询。
prefetch_related预取图片,供模板取主图用。
分类筛选时先取出当前分类及其子分类的ID,再通过spu__category_id__in过滤。
Paginator的page方法会自动处理页码越界,我们捕获异常并返回首页或末页。
Django的viewKe以实现商品列表页,建议通过基于class的view编码实现,面向对象思想viewKe以实现json返回。
Django电商项目中为什么百度不收录?**为啥百度不收录咱的电商网站呢?**
**答:** hen多原因会导致百度不收录你的网站,比如网站太新、内容质量不高、外部链接少等等,你Ke以检查下是不是这些问题;还有可Neng是因为网站结构不友好,导致百度爬虫抓不到你的页面;或者你Ke以使用一些SEO工具来优化你的网站,提高收录率;说实话,这些dou是需要慢慢优化和调整的,不可Neng一蹴而就!你懂的!害,总之就是要多尝试、多分析、多优化!咱就是说加油吧!
测试与验证访问/products/list/
**全部商品列表**
**页面展示**:顶部显示“全部商品”,共N件。
**终端输出**: "GET /products/list/ HTTP/"
**点击“电子产品”按钮,或访问`/products/list/?category_id=`。** 页面只显示iPhone和Samsung的SKU,分类按钮“电子产品”高亮。
八、SQL查询分析Django的.queries**Ke以查kanSQL**。但此处不展开,只需要知道通过`select_related`和`prefetch_related`**我们的查询次数控制在~次内**,没有N+问题。后续性Neng优化篇会详解。
今天我们让商品“上架”到了用户面前,实现了:
商品列表页视图,支持按分 类筛选 ;
利用Django内置分 页器 Paginator 实现高效 分 页;
本文为《Django从入门到精通 打造完整 电 商平台》系列第篇,作者:IT策士。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback