15. 项目实战之前台点餐购物车操作

本文详细介绍了在Django项目中实现前端点餐购物车操作的步骤,包括创建购物车视图文件、配置URL路由、计算购物车总金额,并在模板文件中展示购物车信息。购物车数据存储在session中,通过编辑视图函数和模板文件完成购物车的添加、删除及金额计算功能。
摘要由CSDN通过智能技术生成

主要是实现效果如下图:

 这些数据,我们主要存在session中,因为前面的点餐信息之类的,我们也都是存在session中的。

实现购物车的步骤:

(1). 创建点餐购物车视图文件

(2). 配置购物车的url路由信息

(3). 实现购物车总金额计算

=========================================================================

(1). 创建点餐购物车视图文件

  • 在web前台应用中的views目录下创建一个购物车操作视图文件cart.py

  • 编辑此视图文件:web/views/cart.py 代码如下:

#购物车信息管理视图文件
from django.shortcuts import render
from django.http import HttpResponse
from django.shortcuts import redirect
from django.urls import reverse

def add(request,pid):
    '''添加购物车'''
    #从session中的菜品列表productlist中获取要添加购物车中的菜品信息
    product = request.session['productlist'][pid] #取出了要购买的菜品信息
    product['num'] = 1 #追加一个购买数量,默认为1
    #从session中获取购物车cartlist信息,若没有默认为空字典{}
    cartlist = request.session.get("cartlist",{})
    #判断购物车中是否已存在要购买的商品
    if pid in cartlist:
        cartlist[pid]['num'] += product['num'] #累加购买量,其实就是直接加1
    else:
        cartlist[pid] = product #将菜品放入购物车中
    #将购物车中的商品信息放回到session中
    request.session['cartlist'] = cartlist
    print(cartlist)
    # 跳转点餐首页
    return redirect(reverse('web_index'))


def delete(request,pid):
    '''删除购物车中的商品'''
    #从session中获取名字为cartlist的购物车信息,若没有默认为空字典{}
    cartlist = request.session.get('cartlist',{})
    del cartlist[pid]
    # 将购物车中的商品信息放回到session中
    request.session['cartlist'] = cartlist
    #跳赚到点餐首页
    return redirect(reverse('web_index'))

def clear(request):
    '''清空购物车'''
    request.session['cartlist'] = {}
    return redirect(reverse('web_index'))

def change(request):
    '''购物车信息修改'''
    cartlist = request.session['cartlist'] #从session中获取名字为cartlist的购物车信息,若没有返回空字典{}
    shopid = request.GET.get("pid",0) #获取要修改的菜品id,如果取不到,就默认为0
    num = int(request.GET.get('num',1)) #获取要修改的数量,如果取不到,就默认为1
    if num < 1:
        num = 1
    cartlist[shopid]['num'] = num #修改购物车的数量
    request.session['cartlist'] = cartlist
    return redirect(reverse('web_index'))

可以先把函数的名字写好,函数内容先用pass,然后就可以先把url路由也写好。

(2). 配置项目中购物车urls路由信息

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oliver3455

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值