前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Django的电子商务网站开发(连载21)

基于Django的电子商务网站开发(连载21)

作者头像
顾翔
发布2019-12-11 15:55:58
3350
发布2019-12-11 15:55:58
举报

3.4.2 商品概要信息的分页显示

商品概要信息的分页显示页面是登录操作以后的首界面,以列表的形式显示已经存在的商品,通过这个页面,用户可以进行查看商品信息的详情、添加商品进入购物车等操作。

1. urls.py

...url(r'^goods_view/$', views.goods_view),...

2. views.py

...#查看商品信息def goods_view(request): util = Util() username = util.check_user(request) if username =="": uf = LoginForm() return render(request,"index.html",{'uf':uf,"error":"请登录后再进入"}) else: #获得所有商品信息 good_list = Goods.objects.all() #获得购物车中物品数量 count = util.cookies_count(request) #翻页操作 paginator = Paginator(good_list, 5) page = request.GET.get('page') try: contacts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. contacts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. contacts = paginator.page(paginator.num_pages) return render(request, "goods_view.html", {"user": username, "goodss": contacts,"count":count})...

(1)通过代码good_list= Goods.objects.all()获得所有的商品信息。

(2)通过paginator = Paginator(good_list, 5)以及下面的代码来实现分页显示的功能。

3. 模板

goods_view.html

{% extends "base.html" %}{% block content %} <li><a href="/view_chart/">查看购物车<font color="#FF0000">{{ count }}</font></a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a href="/user_info/">{{user}}</a></li> <li><a href="/logout/">退出</a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> <div class="container theme-showcase" role="main"> <!--商品表单--> <div> <div id="navbar" class="navbar-collapse collapse"> <form method="post" action="/search_name/"> <div> <input name="good" type="text" placeholder="名称"> </div> <button type="submit" class="btn btn-success">搜索</button> </form> </div><!--/.navbar-collapse --> </div> <div> <div> <table class="table table-striped"> <thead> <tr> <th>编号</th> <th>名称</th> <th>价钱</th> <th>查看详情</th> <th>放入购物车</th> </tr> </thead> <tbody> {% for goods in goodss %} <tr> <td>{{ goods.id }}</td> <td>{{ goods.name }}</td> <td>¥{{ goods.price }}</td> <td><a href="/view_goods/{{goods.id}}/">查看</a></td> <td><a href="/add_chart/{{goods.id}}/1/">放入</a></td> </tr> {% endfor %} </tbody> </table> </div> </div> <!-- 列表分页器 --> <div> <span> {% if goodss.has_previous %} <a href="?page={{ goodss.previous_page_number }}">上一页</a> {% endif %} <span> Page {{ goodss.number }} of {{ goodss.paginator.num_pages }}. </span> {% if goodss.has_next %} <a href="?page={{ goodss.next_page_number }}">下一页</a> {% endif %} </span> </div>{% endblock %}

所有商品是通过列表变量goodss返回给模板文件,在模板文件中通过{% for goods in goodss %}来遍历显示。分页功能通过模板中<!--列表分页器 -->下面的代码来实现,见图3-12所示。

图3-12 商品信息列表

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试培训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.4.2 商品概要信息的分页显示
    • 1. urls.py
      • 2. views.py
        • 3. 模板
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档