基于Django+mysql的点餐系统设计-第八篇(H5主页调试-静态页面)
yuyutoo 2024-10-19 11:06 4 浏览 0 评论
声明:本次文章是看了B站上的视频和分享的代码笔记后,自己敲了一遍代码。然后再敲一遍代码的同时写文章梳理逻辑,看不懂的同学可以去看原文章和视频。文章如有雷同,可联系我删除!视频链接:
https://www.bilibili.com/video/BV1pq4y1W7a1?spm_id_from=333.999.0.0
博客目录:
一、基于Django+mysql的点餐系统设计--第一篇(开篇:确认需求功能、数据库设计、程序设计)
二、基于Django+mysql的点餐系统设计--第二篇(搭建工程、前后端调试)
三、基于Django+mysql的点餐系统设计--第三篇(编写后台员工管理页面)
四、基于Django+mysql的点餐系统设计--第四篇(编写后台菜品分类管理功能)
五、基于Django+mysql的点餐系统设计--第五篇(编写后台店铺管理页面)
六、基于Django+mysql的点餐系统设计-第六篇(编写后台菜品管理页面)
七、基于Django+mysql的点餐系统设计-第七篇(编写后台会员管理页面及后台系统技术点总结)
八、基于Django+mysql的点餐系统设计-第八篇(H5手机移动端点餐:主页调试-静态页面)
本章源码下载地址:https://github.com/hopeSuceess/testorder/tree/testorder_20220526_01
本章开始编写H5手机移动端点餐的代码,不同于后台管理子系统,H5手机移动端点餐在用户访问到浏览页后,涉及到的增删改查的操作基本都在这一个页面完成。本章的主要任务是主页调试,首先将前端的css、font、img、js文件夹引入到static/mobile目录下。
然后在templates/mobile目录下引入base.html和index.html
这里说下base.html和index.html:base.html是父页面,搭建了H5手机移动端点餐页面的主框架。作为餐品浏览主页的index.html,首先要继承base.html.
这次为了方便调试,index.html里面的餐品信息没有接收后端传过来的信息进行遍历,而是把index.html写成了静态页面,也就是餐品信息在前端固定写好了,如下图:
{% extends 'mobile/base.html' %}
{% load static %}
{% block mainbody %}
<!--头部-->
<header class="search" id="search">
<div class="header">
<h1>田老师红烧肉-朝阳将台路店</h1>
</div>
<!--通知公告/客服电话-->
</header>
<!--搜索内容-->
<div class="search-content" id="search-content">
<i class="icon-font"></i>
</div>
<!--内容区-->
<article class="main-container">
<!--左侧栏目-->
<div class="sortNav" id="sortNav">
<p class="icon-sort line">分类导航</p>
<a href="javascript:void(0);" onclick="doselectList(this,1)">双拼套餐</a>
<a href="javascript:void(0);" onclick="doselectList(this,2)" class="select">盖饭</a>
<a href="javascript:void(0);" onclick="doselectList(this,3)">小菜</a>
<a href="javascript:void(0);" onclick="doselectList(this,4)">汤/饮料</a>
</div>
<!--右侧产品-->
<div class="sortContent line">
<!--产品列表-->
<ol class="list-content" id="list-content1" style="display:none;">
<li class="line">
<a href="#">
<div class="pro-img"><img src="{% static '/mobile/img/img25.jpg' %}" alt=""></div>
<div class="pro-con"><h3>法国猪肋排 1kg/袋</h3><font>瘦肉多,绝对超值精排 </font><b>¥35.00</b><p>乐果派旗舰店</p></div>
</a>
<a href="javascript:doCartAdd(1)" class="list-cart"><i class="icon-cartadd"></i></a>
</li>
<li class="line">
<a href="#">
<div class="pro-img"><img src="{% static '/mobile/img/img05.jpg' %}" alt=""></div>
<div class="pro-con"><h3>乌拉圭进口牛肋条</h3><font>BTV推荐,全网独家热销</font><b>¥59.00</b><p>乐果派旗舰店</p></div>
</a>
<a href="javascript:doCartAdd(2)" class="list-cart"><i class="icon-cartadd"></i></a>
</li>
<li class="line">
<a href="#">
<div class="pro-img"><img src="{% static '/mobile/img/img12.jpg' %}" alt=""></div>
<div class="pro-con"><h3>智利肋排脆骨 1kg/袋</h3><b>¥56.60</b><p>乐果派旗舰店</p></div>
</a>
<a href="#" class="list-cart"><i class="icon-cartadd"></i></a>
</li>
<li class="line">
<a href="#">
<div class="pro-img"><img src="{% static '/mobile/img/img28.jpg' %}" alt=""></div>
<div class="pro-con"><h3>温氏 农养鸡 袋装 (800g)</h3><b>¥38.80</b><p>乐果派旗舰店</p></div>
</a>
<a href="#" class="list-cart"><i class="icon-cartadd"></i></a>
</li>
</ol>
<ol class="list-content" id="list-content2" style="display:none;">
<li class="line">
<a href="#">
<div class="pro-img"><img src="{% static '/mobile/img/img29.jpg' %}" alt=""></div>
<div class="pro-con"><h3>江西萍乡土鸡蛋</h3><font>林地散养,原粮喂养,蛋黄大,蛋清粘稠</font><b>¥12.80</b><p>乐果派旗舰店</p></div>
</a>
<a href="#" class="list-cart"><i class="icon-cartadd"></i></a>
</li>
<li class="line">
<a href="#">
<div class="pro-img"><img src="{% static '/mobile/img/img30.jpg' %}" alt=""></div>
<div class="pro-con"><h3>台湾皮蛋,松花蛋</h3><font></font><b>¥28.00<s>¥31.90</s></b><p>乐果派旗舰店</p></div>
</a>
<a href="#" class="list-cart"><i class="icon-cartadd"></i></a>
</li>
</ol>
<ol class="list-content" id="list-content3" style="display:none;">
<li class="line">
<a href="#">
<div class="pro-img"><img src="{% static '/mobile/img/img07.jpg' %}" alt=""></div>
<div class="pro-con"><h3>萍乡土鸡蛋</h3><font></font><b>¥28.00<s>¥31.90</s></b><p>乐果派旗舰店</p></div>
</a>
<a href="#" class="list-cart"><i class="icon-cartadd"></i></a>
</li>
<li class="line">
<a href="#">
<div class="pro-img"><img src="{% static '/mobile/img/img16.jpg' %}" alt=""></div>
<div class="pro-con"><h3>新鲜猪肉</h3><font></font><b>¥28.00<s>¥31.90</s></b><p>乐果派旗舰店</p></div>
</a>
<a href="#" class="list-cart"><i class="icon-cartadd"></i></a>
</li>
<li class="line">
<a href="#">
<div class="pro-img"><img src="{% static '/mobile/img/img27.jpg' %}" alt=""></div>
<div class="pro-con"><h3>鸡肉</h3><font></font><b>¥28.00<s>¥31.90</s></b><p>乐果派旗舰店</p></div>
</a>
<a href="#" class="list-cart"><i class="icon-cartadd"></i></a>
</li>
</ol>
<br><br>
</div>
<!--购物车-->
<div class="cartContent fadeInBottom100" id="cartContent">
<div class="LayerHeader line">
<button class="Del" onclick="doCartClear()"><i class="icon-delete"></i>清空</button>
<button class="close pl"><i class="icon-plus rot45"></i></button>
</div>
<div class="cartContentList">
<ul class="line-li">
<!--li>
<img src="img/img01.jpg" alt=""><p>家乐都有机里脊肉 500g</p><span>¥150.00</span>
<div class="D-BuyNum"><button><i class="icon-reduce"></i></button><input type="number" readonly class="line" value="9"><button><i class="icon-plus"></i></button></div>
</li>
<li>
<img src="img/img02.jpg" alt=""><p>法国猪肋排 1kg/袋</p><span>¥150.00</span>
<div class="D-BuyNum"><button><i class="icon-reduce"></i></button><input type="number" class="line" value="9"><button><i class="icon-plus"></i></button></div>
</li>
<li>
<img src="img/img03.jpg" alt=""><p>乌拉圭进口(无骨)牛肋条 约1kg</p><span>¥150.00</span>
<div class="D-BuyNum"><button><i class="icon-reduce"></i></button><input type="number" class="line" value="9"><button><i class="icon-plus"></i></button></div>
</li-->
</ul>
</div>
<div class="LayerFooter">
共计:<span>¥0.00</span>
</div>
</div>
</article>
<!--底部栏目-->
<menu>
<a href=""><i class="icon-selectmore"></i>切换店铺</a>
<!--a href="member-order.html"><i class="icon-allorders"></i>订单</a-->
<a href="javascript:void(0)" id="orderCart"><i class="icon-cart"><span>0</span></i>购物车</a>
<a href=""><i class="icon-head"></i>我的</a>
<a><button onclick="location.href=''">去结算</button></a>
</menu>
<!--弹出圈圈loading-->
<div class="spinner" style="display:none;"><i></i></div>
{% endblock %}
{% block myjavascript %}
<script type="text/javascript">
function doselectList(ob,m){
$("#sortNav a").removeClass("select");
$(ob).addClass("select");
$("ol.list-content").hide();
$("#list-content"+m).show();
return false;
}
cartlist = [];
function doCartAdd(id){
shoplist = [{'id':1,'name':'法国猪肋排','cover_pic':'img/img25.jpg','price':35.00,'num':1},{'id':2,'name':'乌拉圭进口牛肋条','cover_pic':'img/img05.jpg','price':90.00,'num':1}];
shop = shoplist[id-1];
var b=true;
for(var i=0;i<cartlist.length;i++){
if(cartlist[i].id==id){
b = false;
cartlist[i].num += 1;
break;
}
}
if(b){
cartlist.push(shop);
}
doShowCart();
}
function doCartClear(){
cartlist = [];
doShowCart();
}
function doShowCart(){
var cartContent = $("#cartContent div.cartContentList ul.line-li");
cartContent.empty()
var total = 0.0;
for(var i=0;i<cartlist.length;i++){
var str = "<li>";
str += '<img src="'+cartlist[i].cover_pic+'" alt=""><p>'+cartlist[i].name+'</p><span>¥'+cartlist[i].price+'</span>';
str += '<div class="D-BuyNum"><button><i class="icon-reduce"></i></button><input type="number" readonly class="line" value="'+cartlist[i].num+'"><button><i class="icon-plus"></i></button></div>'
str += "</li>";
cartContent.append(str);
total += cartlist[i].price * cartlist[i].num;
}
$("#cartContent div.LayerFooter span").html("¥"+total);
$("#orderCart i.icon-cart span").html(cartlist.length);
}
</script>
{% endblock %}
url控制器之前引用过跳转到主页的路由,这里再强调下:在mobile/urls.py中编写访问主页的路由:
urlpatterns = [
# path('admin/', admin.site.urls),
# ''表示前端页面直接输入域名或IP+端口会跳到此处,index.index表示在mobile/views/index.py文件下的index函数处理此处的逻辑
# name='mobile_index':在前端代码中通过name值也能找到此处路由
path('',index.index, name="mobile_index")
]
说完了url控制器,咱们看下views层怎么实现。因为前端是静态页面,view层只需将访问链接渲染到静态页面index.html上就可以,因此非常简单,看下面代码:
def index(request):
return render(request, "mobile/index.html")
因为是调试,前端用的静态页面,所以不需要调用Models层。现在写完了url控制器和views层、templates层,可以启动程序访问页面调试了,访问:http://localhost:8000/mobile/页面展示正常,如下图:
经过上面的调试说明H5手机移动端点餐的主页面是调试通了,接下来咱们将静态页面改为动态页面,这里说的是静态页面,下一篇开始说主页的动态页面和切换店铺
相关推荐
- 野路子科技!2步教你把手机改造成一个FTP服务器,支持PC互传
-
哈喽,大家好,我是野路子科技,今天来给大家带来一个教程,希望大家喜欢。正如标题所言,就是教大家如何把售价改造成FTP服务器,而这个时候估计有朋友会问了,把手机改造成FTP服务器有什么用呢?现在有Q...
- 不得不看:别样于Server-U的群晖文件存储服务器的搭建与使用
-
我先前的作品中,有着关于Server-U的ftp文件存储服务器的搭建与访问的头条文章和西瓜视频,而且我们通过各种方式也给各位粉丝介绍了如何突破局域网实现真正意义上的公网访问机制技术。关于Server-...
- Qt三种方式实现FTP上传功能_qt引入qftp库
-
FTP协议FTP的中文名称是“文件传输协议”,是FileTransferProtocol三个英文单词的缩写。FTP协议是TCP/IP协议组中的协议之一,其传输效率非常高,在网络上传输大的文件时,经...
- Filezilla文件服务器搭建及客户端的使用
-
FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能。可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户...
- 美能达柯美/震旦复印机FTP扫描怎么设置?
-
好多网友不知道怎么安装美能达/震旦复印机扫描,用得最多是SMB和FTP扫描,相对于SMB来说,FTP扫描安装步骤更为便捷,不容易出问题,不需要设置文件夹共享,所以小编推荐FTP来扫描以美能达机器为例详...
- CCD(简易FTP服务器软件)_简单ftp服务器软件
-
CCD简易FTP服务器软件是一款很方便的FPT搭建工具,可以将我们的电脑快速变成一个FPT服务器。使用方法非常简单,只要运行软件就会自动生效,下载银行有该资源。该工具是不提供操作界面的,其他用户可以输...
- Ubuntu系统搭建FTP服务器教程_ubuntu架设服务器
-
在Ubuntu系统上搭建FTP服务器是文件传输的一个非常实用方法,适合需要进行大量文件交换的场景。以下是一步步指导,帮助您在Ubuntu上成功搭建FTP服务器。1.安装vsftpd软件...
- 理光FTP扫描设置教程_理光ftp扫描设置方法
-
此教程主要用来解决WIN10系统下不能使用SMB文件夹扫描的问题,由于旧的SMB协议存在安全漏洞,所以微软在新的系统,WIN8/WIN10/SERVER201220162018里使用了新的SMB传...
- 纯小白如何利用wireshark学习网络技术
-
写在前面工欲善其事必先利其器!熟悉掌握一种神器对以后的工作必然是有帮助的,下面我将从简单的描述Wireshark的使用和自己思考去写,若有错误或不足还请批评指正。...
- 京东买13盘位32GB内存NAS:NAS系统安装设置教程
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:yasden你没有看错,我在京东自营商城购买硬件,组装了一台13盘位,32GB内存的NAS,硬盘有13个盘位!CPU是AMD的5500!本文...
- python教程之FTP相关操作_python ftps
-
ftplib类库常用相关操作importftplibftp=ftplib.FTP()ftp.set_debuglevel(2)#打开调试级别2,显示详细信息ftp.connect(“I...
- xftp怎么用,xftp怎么用,具体使用方法
-
Xftp是一款界面化的ftp传输工具,用起来方便简单,这里为大家分享下Xftp怎么使用?希望能帮到有需要的朋友。IIS7服务器管理工具可以批量管理、定时上传下载、同步操作、数据备份、到期提醒、自动更新...
- 树莓派文件上传和下载,详细步骤设置FTP服务器
-
在本指南中,详细记录了如何在树莓Pi上设置FTP。设置FTP可以在网络上轻松地将文件传输到Pi上。FTP是文件传输协议的缩写,只是一种通过网络在两个设备之间传输文件的方法。还有一种额外的方法,你可以用...
- win10电脑操作系统,怎么设置FTP?windows10系统设置FTP操作方法
-
打印,打印,扫描的日常操作是每一个办公工作人员的必需专业技能,要应用FTP作用扫描文件到电脑上,最先要必须一台可以接受文件的FTP服务器。许多软件都需要收费标准进行,但人们还可以应用Windows的系...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)