前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】2022年02月 Django商城项目 32-订单页面设计

【愚公系列】2022年02月 Django商城项目 32-订单页面设计

作者头像
愚公搬代码
发布于 2022-02-05 07:46:41
发布于 2022-02-05 07:46:41
44200
代码可运行
举报
文章被收录于专栏:历史专栏历史专栏
运行总次数:0
代码可运行

文章目录

一、订单页面设计

1.HTML

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
	<title>小徐商城-用户中心</title>
	<link rel="stylesheet" type="text/css" href="{{ static('css/reset.css') }}" />
	<link rel="stylesheet" type="text/css" href="{{ static('css/main.css') }}" />
	<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
	<script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
	<script type="text/javascript">
    let username = "{{ username }}";
    let mobile = "{{ mobile }}";
    let email = "{{ email }}";
    let email_active = "{{ email_active }}";
	</script>
</head>
<body>
	<div id="app" v-cloak=v-cloak>
		<div class="header_con">
			<div class="header">
				<div class="welcome fl">欢迎来到小徐商城!</div>
				<div class="fr">
					<div v-if="username" class="login_btn fl">
						欢迎您:<em>[[ username ]]</em>
						<span>|</span>
						{#                    url 本质是 reverse#}
						<a href="{{ url('users:logout') }}">退出</a>
					</div>
					<div v-else=v-else class="login_btn fl">
						<a href="{{ url('users:login') }}">登录</a>
						<span>|</span>
						<a href="{{ url('users:register') }}">注册</a>
					</div>
					<div class="user_link fl">
						<span>|</span>
						<a href="{{ url('users:center') }}">用户中心</a>
						<span>|</span>
						<a href="/carts">我的购物车</a>
						<span>|</span>
						<a href="{{ url('orders:placeorder') }}">我的订单</a>
					</div>
				</div>
			</div>
		</div>

		<div class="search_bar clearfix">
			<a href="index.html" class="logo fl"><img src="{{ static('images/logo.png') }}" /></a>
			<div class="search_wrap fl">
				<form method="get" action="/search/" class="search_con">
					<input type="text" class="input_text fl" name="q" placeholder="搜索商品" />
					<input type="submit" class="input_btn fr" name="" value="搜索" />
				</form>
				<ul class="search_suggest fl">
					<li><a href="#">索尼微单</a></li>
					<li><a href="#">优惠15</a></li>
					<li><a href="#">美妆个护</a></li>
					<li><a href="#">21</a></li>
				</ul>
			</div>
		</div>

		<div class="main_con clearfix">
			<div class="left_menu_con clearfix">
				<h3>用户中心</h3>
				<ul>
					<li><a href="{{ url('users:center') }}" class="active">· 个人信息</a></li>
					<li><a href="../static/user_center_order.html">· 全部订单</a></li>
					<li><a href="{{ url('users:showaddress') }}" >· 收货地址</a></li>
					<li><a href="{{ url('users:updatepass') }}">· 修改密码</a></li>
				</ul>
			</div>
			<div class="right_content clearfix">
				<div class="info_con clearfix">
					<h3 class="common_title2">基本信息</h3>
					<ul class="user_info_list">
						<li><span>用户名:</span>[[ username ]]</li>
						<li><span>联系方式:</span>[[ mobile ]]</li>
						<li>
							<span>Email:</span>
							<div v-if="set_email">
								<input v-model="email" @blur="check_email" type="email" name="email" class="email" />
								<input @click="save_email" type="button" name="" value="保 存" />
								<input @click="cancel_email" type="reset" name="" value="取 消" />
								<div v-show="error_email" class="error_email_tip">邮箱格式错误</div>
							</div>
							<div v-else=v-else>
								<input v-model="email" type="email" name="email" class="email" readonly=readonly />
								<div v-if="email_active">
									已验证
								</div>
								<div v-else=v-else>
									待验证<input @click="save_email" :disabled="send_email_btn_disabled" type="button" :value="send_email_tip" />
								</div>
							</div>
						</li>
					</ul>
				</div>

				<h3 class="common_title2">最近浏览</h3>
				<div class="has_view_list">
					<ul class="goods_type_list clearfix">
						<li>
							<a href="../static/detail.html"><img src="{{ static('images/goods/goods003.jpg') }}" /></a>
							<h4><a href="../static/detail.html">360手机 N6 Pro 全网通</a></h4>
							<div class="operate">
								<span class="price">2699.00</span>
								<span class="unit"></span>
								<a href="#" class="add_goods" title="加入购物车"></a>
							</div>
						</li>

						<li>
							<a href="../static/detail.html"><img src="{{ static('images/goods/goods004.jpg') }}" /></a>
							<h4><a href="#">360手机 N6 Pro 全网通</a></h4>
							<div class="operate">
								<span class="price">2699.00</span>
								<span class="unit"></span>
								<a href="#" class="add_goods" title="加入购物车"></a>
							</div>
						</li>

						<li>
							<a href="../static/detail.html"><img src="{{ static('images/goods/goods005.jpg') }}" /></a>
							<h4><a href="#">360手机 N6 Pro 全网通</a></h4>
							<div class="operate">
								<span class="price">2699.00</span>
								<span class="unit"></span>
								<a href="#" class="add_goods" title="加入购物车"></a>
							</div>
						</li>

						<li>
							<a href="../static/detail.html"><img src="{{ static('images/goods/goods006.jpg') }}" /></a>
							<h4><a href="#">360手机 N6 Pro 全网通</a></h4>
							<div class="operate">
								<span class="price">2699.00</span>
								<span class="unit"></span>
								<a href="#" class="add_goods" title="加入购物车"></a>
							</div>
						</li>

						<li>
							<a href="../static/detail.html"><img src="{{ static('images/goods/goods007.jpg') }}" /></a>
							<h4><a href="#">急速路由</a></h4>
							<div class="operate">
								<span class="price">64.5</span>
								<span class="unit">6.45/500g</span>
								<a href="#" class="add_goods" title="加入购物车"></a>
							</div>
						</li>
					</ul>
				</div>
			</div>
		</div>

		<div class="footer no-mp">
			<div class="foot_link">
				<a href="#">关于我们</a>
				<span>|</span>
				<a href="#">联系我们</a>
				<span>|</span>
				<a href="#">招聘人才</a>
				<span>|</span>
				<a href="#">友情链接</a>
			</div>
			<p>CopyRight © 2022 福建小徐网络科技有限公司 All Rights Reserved</p>
			<p>电话:13960699696ICP*******8</p>
		</div>
	</div>
	<script type="text/javascript" src="{{ static('js/host.js') }}"></script>
	<script type="text/javascript" src="{{ static('js/common.js') }}"></script>
	<script type="text/javascript" src="{{ static('js/user_center_info.js') }}"></script>
</body>
</html>

2.JS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var vm = new Vue({
    el: '#app',
	// 修改Vue变量的读取语法,避免和django模板语法冲突
    delimiters: ['[[', ']]'],
    data: {
        host: host,
        order_submitting: false, // 正在提交订单标志
        pay_method: 2, // 支付方式,默认支付宝支付
        nowsite: '', // 默认地址
        payment_amount: '',
        username: '',
    },
    mounted(){
        // 初始化
        this.payment_amount = payment_amount;
        // 绑定默认地址
        this.nowsite = 1;
        this.username = getCookie('username');
        console.log(getCookie('username'))
    },
    methods: {
        
    }
});

3.后端业务逻辑

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def get(self,request):
        # 1.获取用户信息
        user = request.user
        # 2.获取登陆用户的地址信息
        try:
            addresses = Address.objects.filter(user=user,is_deleted=False)
        except Exception as e:
            logger.error(e)
            return render(request,'place_order.html',context={'errmsg':'地址查询失败'})
        # 3.获取登陆用户选中的商品信息redis

        #     3.1 连接redis
        redis_conn = get_redis_connection('carts')
        #     3.2 hash(选中和未选中)
        id_count=redis_conn.hgetall('carts_%s'%user.id)
        #     3.3 set
        selected_ids=redis_conn.smembers('selected_%s'%user.id)

        #     3.4 对数据进行一下转换,同时我们重新组织数据,
        #         这个数据只包含选中的商品id和数量
        # {sku_id:count,sku_id:count}
        selected_carts={}
        for id in selected_ids:
            selected_carts[int(id)]=int(id_count[id])
        #     3.5 根据id查询商品的详细信息
        ids = selected_carts.keys()
        # [id,id,...]
        skus = SKU.objects.filter(id__in=ids)
        # [sku,sku,sku]
        #     3.6 统计 总金额和总数量 运费信息
        total_count=0   # 总数量
        total_amount=0  # 总金额
        freight=10       # 运费
        # 循环变量 来添加 商品数量小计和金额 以及统计 总金额和总数量
        for sku in skus:
            # 每个商品的数量小计和金额小计
            sku.count=selected_carts[sku.id]
            sku.amount=(sku.count*sku.price)

            # 总金额和总数量
            total_count += selected_carts[sku.id]
            total_amount += (sku.count*sku.price)


        context = {
            'addresses': addresses,
            'skus': skus,
            'total_count': total_count,
            'total_amount': total_amount,
            'freight': freight,
            'payment_amount': total_amount + freight
        }

        return render(request,'place_order.html',context=context)

二、页面效果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/02/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【愚公系列】2022年01月 Django商城项目10-首页-页面设计
文章目录 一、HTML页面 二、js文件 三、页面效果 一、HTML页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type"
愚公搬代码
2022/01/14
3640
【愚公系列】2022年01月 Django商城项目10-首页-页面设计
【愚公系列】2022年02月 Django商城项目 33-订单确认功能实现
文章目录 一、订单确认功能实现 1.后台处理逻辑 2.JS 二、订单支付成功页面 1.后台逻辑 2.页面设计 3.实际效果 一、订单确认功能实现 1.后台处理逻辑 class OrderView(LoginRequiredJSONMixin,View): def post(self,request): # 这里省略了很多操作,这些操作不需要事务 # 1.订单信息 # 1.1 获取用户信息 user = request.u
愚公搬代码
2022/02/07
4950
【愚公系列】2022年02月 Django商城项目 33-订单确认功能实现
【愚公系列】2022年01月 Django商城项目14-用户中心-界面设计
文章目录 一、HTML页面 二、js文件 三、页面效果 一、HTML页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type"
愚公搬代码
2022/01/21
2790
【愚公系列】2022年01月 Django商城项目14-用户中心-界面设计
【愚公系列】2022年01月 Django商城项目 26-搜索引擎功能实现
搜索引擎进行全文检索时,会对数据库中的数据进行一遍预处理,单独建立起一份索引结构数据。
愚公搬代码
2022/02/02
5260
【愚公系列】2022年01月 Django商城项目 26-搜索引擎功能实现
【愚公系列】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 View from app.contents.utils import get_
愚公搬代码
2022/02/01
3040
【愚公系列】2022年01月 Django商城项目 24-商品列表页功能实现
【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-7首页界面
首先将我们的模板文件拷贝到 templates 目录下, 将我们模板的静态文件拷贝到 static 目录下.
天道Vax的时间宝藏
2021/08/11
5250
【愚公系列】2022年01月 Django商城项目 27-商品详情页功能实现
文章目录 一、商品详情页功能实现 1.后台查询代码 二、详情页面展示 1.前台html代码 2.实际效果 三、包装、规格、售后页面展示 1.前台html代码 2.实际效果 四、404页面 1.前台html代码 2.实际效果 一、商品详情页功能实现 1.后台查询代码 class DetailView(View): def get(self,request,sku_id): # 获取当前sku的信息 try: sku = SKU.objects
愚公搬代码
2022/02/02
3930
【愚公系列】2022年01月 Django商城项目 27-商品详情页功能实现
【愚公系列】2022年01月 Django商城项目 25-热销数据功能实现
文章目录 一、热销数据功能实现 1.后台查询代码 二、热销数据信息展示 1.前台html代码 2.实际效果 一、热销数据功能实现 1.后台查询代码 class HotView(View): def get(self,request,category_id): # 1.获取分类id # 2.查询是否有当前分类 try: category=GoodsCategory.objects.get(id=category_id)
愚公搬代码
2022/02/01
1660
【愚公系列】2022年01月 Django商城项目 25-热销数据功能实现
【愚公系列】2022年01月 Django商城项目 30-购物车功能实现
文章目录 一、添加购物车 1.后端逻辑代码 2.前台请求接口代码 3.实际效果 二、获取购物车 1.后端逻辑代码 2.前台页面代码 3.实际效果 三、更新购物车 1.后端逻辑代码 2.前台页面代码 3.实际效果 四、删除购物车 1.后端逻辑代码 2.前台页面代码 五、合并购物车 一、添加购物车 1.后端逻辑代码 """ 一 前后端需求分析需求 前端需要收集: 商品id,商品数量, 选中是可选的(默认就是选中) 如果用户登陆了则请求携带session id
愚公搬代码
2022/02/04
5910
【愚公系列】2022年01月 Django商城项目 30-购物车功能实现
【新星计划】【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-9购物车、提交订单、订单提交成功页面功能实现
我们在 cart 应用的 views.py 模块中增加 show_cart 视图函数, 来显示购物车商品数据, 代码如下:
天道Vax的时间宝藏
2021/08/11
1.6K0
【愚公系列】2022年01月 Django商城项目18-用户中心-密码修改功能页面设计
文章目录 一、密码修改功能页面设计 1.HTML 2.JS 二、页面效果 一、密码修改功能页面设计 1.HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta ht
愚公搬代码
2022/01/26
3120
【愚公系列】2022年01月 Django商城项目18-用户中心-密码修改功能页面设计
【愚公系列】2022年01月 Django商城项目 22-首页信息展示
文章目录 一、首页信息展示 1.后台查询代码 二、分类信息展示 1.前台html代码 2.实际效果 三、轮播图广告展示 1.前台html代码 2.实际效果 四、快讯和页头展示 1.前台html代码 2.实际效果 五、商品楼层展示 1.前台html代码 2.实际效果 一、首页信息展示 1.后台查询代码 from app.contents.models import ContentCategory from app.contents.utils import get_categories class Index
愚公搬代码
2022/02/01
4570
【愚公系列】2022年01月 Django商城项目 22-首页信息展示
【新星计划】【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-10订单提交成功页面功能实现
当购物车商品数据确认无误之后, 点击结算按钮跳转到订单提交页面, 在该页面用户就需要填写收货地址、联系电话、联系人等信息.
天道Vax的时间宝藏
2021/08/11
7770
【新星计划】【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-8商品详细页面与商品分类功能实现
商品详细页面需要展示的数据为, 商品分类和具体商品数据. 我们在 goods 应用的 views.py 模块中新增视图函数 detail, 用于处理商品详细信息显示. 代码实现如下:
天道Vax的时间宝藏
2021/08/11
7560
【愚公系列】2022年01月 Django商城项目11-登录界面-页面设计
文章目录 一、HTML页面 二、js文件 三、页面效果 一、HTML页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type"
愚公搬代码
2022/01/15
1910
【愚公系列】2022年01月 Django商城项目11-登录界面-页面设计
【愚公系列】2022年01月 Django商城项目06-注册界面-页面设计
文章目录 一、HTML页面 二、js文件 common.js register.js 三、页面效果 备注:`具体登录逻辑,图片验证码,短信验证码请看后面文章` 一、HTML页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-wid
愚公搬代码
2022/01/14
5760
【愚公系列】2022年01月 Django商城项目06-注册界面-页面设计
【愚公系列】2022年01月 Django商城项目16-用户中心-地址管理之省市三联动功能实现
表结构为: id:主键 name:省市名称 parent_id:自关联主键id
愚公搬代码
2022/01/24
3340
【愚公系列】2022年01月 Django商城项目16-用户中心-地址管理之省市三联动功能实现
在线商城项目02-展示商品列表页面并抽取公共组件
step1:新增存放重构资源的目录 视频提供的重构有点问题,大家可以使用我上传在github上的重构资源。 在根目录下新建一个resources文件夹,用来存放重构的资源文件。如果公司或者团队有专门的重构工程师,可以将这个文件夹交给他们管理。
love丁酥酥
2018/08/27
1.3K0
在线商城项目02-展示商品列表页面并抽取公共组件
计算机毕业设计【HTML+CSS+JavaScript服装购物商城】毕业论文源码
常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求都能满足你的需求。原始HTML+CSS+JS页面设计, web大学生网页设计作业源码,画面精明,排版整洁,内容丰富,主题鲜明,非常适合初学者学习使用。 --- <font
IT司马青衫
2022/08/18
6580
计算机毕业设计【HTML+CSS+JavaScript服装购物商城】毕业论文源码
【愚公系列】2022年02月 Django商城项目 35-页面静态化功能实现
文章目录 前言 1.页面静态化 一、Django首页静态化 二、商品详情页静态化 前言 1.页面静态化 常说的页面静态化分为两种,一种是伪静态,即url 重写,一种是真静态化。 网页静态化优点: 加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高; 有利于搜索引擎优化SEO,Baidu、Google都会优先收录静态页面,不仅被收录的快还收录的全; 减轻服务器负担,浏览网页无需调用系统数据库; 网站更安全,HTML页面不会受php相关漏洞的影响; 观看一下大一点的网站基本全是静态页面,而
愚公搬代码
2022/02/07
3620
推荐阅读
【愚公系列】2022年01月 Django商城项目10-首页-页面设计
3640
【愚公系列】2022年02月 Django商城项目 33-订单确认功能实现
4950
【愚公系列】2022年01月 Django商城项目14-用户中心-界面设计
2790
【愚公系列】2022年01月 Django商城项目 26-搜索引擎功能实现
5260
【愚公系列】2022年01月 Django商城项目 24-商品列表页功能实现
3040
【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-7首页界面
5250
【愚公系列】2022年01月 Django商城项目 27-商品详情页功能实现
3930
【愚公系列】2022年01月 Django商城项目 25-热销数据功能实现
1660
【愚公系列】2022年01月 Django商城项目 30-购物车功能实现
5910
【新星计划】【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-9购物车、提交订单、订单提交成功页面功能实现
1.6K0
【愚公系列】2022年01月 Django商城项目18-用户中心-密码修改功能页面设计
3120
【愚公系列】2022年01月 Django商城项目 22-首页信息展示
4570
【新星计划】【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-10订单提交成功页面功能实现
7770
【新星计划】【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-8商品详细页面与商品分类功能实现
7560
【愚公系列】2022年01月 Django商城项目11-登录界面-页面设计
1910
【愚公系列】2022年01月 Django商城项目06-注册界面-页面设计
5760
【愚公系列】2022年01月 Django商城项目16-用户中心-地址管理之省市三联动功能实现
3340
在线商城项目02-展示商品列表页面并抽取公共组件
1.3K0
计算机毕业设计【HTML+CSS+JavaScript服装购物商城】毕业论文源码
6580
【愚公系列】2022年02月 Django商城项目 35-页面静态化功能实现
3620
相关推荐
【愚公系列】2022年01月 Django商城项目10-首页-页面设计
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档