大数据毕业设计:Python在线商品购物商城 商品推荐系统 +django框架(附源码)✅

184 篇文章 42 订阅
178 篇文章 6 订阅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏)

毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总

🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅

1、项目介绍

技术栈:
Python语言、Django框架、MySQL数据库、HTML、详细设计开发文档

在线购物商城系统是一个常见的电子商务应用程序,它允许用户在网上浏览和购买商品。该系统通常具有以下功能:

  1. 用户注册和登录:用户可以创建账户并登录系统,以便浏览和购买商品。

  2. 商品展示:系统可以展示各种商品的信息,包括名称、价格、描述和图片等。

  3. 购物车:用户可以将感兴趣的商品添加到购物车中,以便在结账时一次性购买。

  4. 订单管理:系统可以处理用户的订单,包括生成订单、支付、发货和确认收货等。

  5. 用户评价和评论:用户可以对购买的商品进行评价和评论,以便其他用户参考。

2、项目界面

(1)商品详情页

在这里插入图片描述

(2)系统首页

在这里插入图片描述

(3)商品分类

在这里插入图片描述

(4)我的购物车功能

在这里插入图片描述

(5)个人中心

在这里插入图片描述

(6)后台管理

在这里插入图片描述

3、项目说明

Django是一个用Python编写的开源Web应用程序框架,它可以帮助开发人员快速构建高效、安全和可扩展的Web应用程序。Django框架提供了许多功能和工具,包括模型-视图-控制器(MVC)架构、URL路由、表单处理、用户认证和授权等。

MySQL是一个流行的关系型数据库管理系统,它被广泛用于存储和管理大量结构化数据。MySQL提供了高性能、可靠和可扩展的数据库解决方案,可以支持各种类型的应用程序。

在线购物商城系统是一个常见的电子商务应用程序,它允许用户在网上浏览和购买商品。该系统通常具有以下功能:

  1. 用户注册和登录:用户可以创建账户并登录系统,以便浏览和购买商品。

  2. 商品展示:系统可以展示各种商品的信息,包括名称、价格、描述和图片等。

  3. 购物车:用户可以将感兴趣的商品添加到购物车中,以便在结账时一次性购买。

  4. 订单管理:系统可以处理用户的订单,包括生成订单、支付、发货和确认收货等。

  5. 用户评价和评论:用户可以对购买的商品进行评价和评论,以便其他用户参考。

在使用Django框架和MySQL数据库开发在线购物商城系统时,可以利用Django的模型层来定义商品、用户和订单等数据模型,并使用MySQL作为数据存储后端。可以使用Django的视图和模板来处理用户请求,并与MySQL数据库进行交互。

通过结合Django和MySQL,可以轻松构建一个功能齐全、安全可靠的在线购物商城系统。

4、核心代码


from django.shortcuts import render
from User.user import UserMethod
from.models import Product,Category,Cart,PayCart
from User.views import login_required
from User.models import UserInfo
from django.http import  HttpResponseRedirect,JsonResponse
from User.models import Address

# Create your views here.

def index(request):
    # get this user from session
    thisuser = UserMethod(request)
    # get user info, check if it's logined
    userinfo = thisuser.getUserInfo()
    # 学习书刊
    book1s = Product.objects.filter(category_id=1)[0:4]
    # 小说书刊
    book2s = Product.objects.filter(category_id=2)[0:4]
    # 时尚杂志
    book3s = Product.objects.filter(category_id=3)[0:4]
    # 儿童书刊
    book4s = Product.objects.filter(category_id=4)[0:4]
    # 明星传记
    book5s = Product.objects.filter(category_id=5)[0:4]
    # 励志书刊
    book6s = Product.objects.filter(category_id=6)[0:4]
    data = {
        'userinfo': userinfo,
        'book1s':book1s,
        'book2s': book2s,
        'book3s': book3s,
        'book4s': book4s,
        'book5s': book5s,
        'book6s': book6s,
    }
    return render(request, "bshop/index.html",data)

# 商品列表
def prodetail(request):
    thisuser = UserMethod(request)
    userinfo = thisuser.getUserInfo()
    pid = request.GET.get('pid')
    product=Product.objects.filter(pid=pid).first()  #产品
    category=Category.objects.filter(cid=product.category_id).first()
    imglist = product.pdImage.split('##')  # 商品图片地址
    price=(float(product.pdprice)*float(product.discount)/10)  #折扣价
    books = Product.objects.filter(category_id=product.category_id)[0:3]
    data={
        'userinfo':userinfo,
        'product':product,
        'category':category,
        'imglist':imglist,
        'price':price,
        'books':books,
    }
    return render(request, "bshop/detail1.html", data)

# Add to cart
@login_required
def addtocart(request):   #添加至购物车

    thisuser = UserMethod(request)
    userinfo = thisuser.getUserInfo()
    thisuser = UserInfo.objects.filter(username=userinfo['username']).first()
    if request.method == "POST":
        product_pid = request.POST.get('product_pid')    # 获取pid
        userinfo_id = thisuser.uid              # 用户id
        pnum = request.POST.get('pnum')          # 数量
        sumprice = request.POST.get('sumprice')
        thiscart = Cart.objects.filter(product_id=product_pid,  userinfo_id= userinfo_id).all()
        if len(thiscart) == 0:
            newcart = Cart(product_id=product_pid,  userinfo_id= userinfo_id,pnum=pnum,sumprice=sumprice)
            newcart.save()
        # else:
        #     thiscart[0].pnum = thiscart[0].pnum + pnum # 更改数量
        #     thisuser[0].sumprice =round(float(thisuser[0].sumprice)  + float(sumprice) ) # 更改价格
        #     thiscart[0].save()
        allcart = Cart.objects.filter(userinfo_id= userinfo_id).count()    # 购物车数量
        return JsonResponse({
            'recode': 1,
            'remsg': '添加成功',
            'data': {
                'error': '',
                'allcart': allcart
            }
        })
    else:
        return JsonResponse({'recode': 0, 'remsg': '非法请求', 'data': {'error': '非法请求'}})

# 获取购物车数目
@login_required
def getcartnum(request):
    if request.method == "GET":
        thisuser = UserMethod(request)
        userinfo = thisuser.getUserInfo()
        thisuser = UserInfo.objects.filter(username=userinfo['username']).first()
        userinfo_id = thisuser.uid  # 用户id
        allcart = Cart.objects.filter(userinfo_id=userinfo_id).count()  # 购物车数量
        return JsonResponse({'recode': 1, 'remsg': '获取成功', 'data': {'error': '', 'allcart': allcart}})

#  展示购物车
@login_required
def showCart(request):
    thisuser = UserMethod(request)
    userinfo = thisuser.getUserInfo()
    thisuser = UserInfo.objects.filter(username=userinfo['username']).first()
    userinfo_id = thisuser.uid  # 用户id
    allcart = Cart.objects.filter(userinfo_id=userinfo_id).all()
    allcartnum = Cart.objects.filter(userinfo_id=userinfo_id).count()  # 购物车数量

    data={
        'userinfo': userinfo,
        'allcartnum': allcartnum,
        'allcart': allcart ,


    }
    return render(request,'bshop/ShowCart.html',data)

# 增加商品
@login_required
def add_goods(request):
    if request.method == 'POST':
        thisuser = UserMethod(request)
        userinfo = thisuser.getUserInfo()
        thisuser = UserInfo.objects.filter(username=userinfo['username']).first()
        userinfo_id = thisuser.uid  # 用户id
        product_pid = request.POST.get('product_pid')
        data = {}
        cart = Cart.objects.filter(userinfo_id=userinfo_id,product_id=product_pid).first()
        if cart:
            cart.sumprice = round (float(cart.sumprice) / cart.pnum * (cart.pnum + 1),2)
            cart.pnum += 1
            cart.save()

            data['msg'] = '请求成功'
            return JsonResponse(data)

#减少商品
@login_required
def sub_goods(request):
    if request.method == 'POST':
        thisuser = UserMethod(request)
        userinfo = thisuser.getUserInfo()
        thisuser = UserInfo.objects.filter(username=userinfo['username']).first()
        userinfo_id = thisuser.uid  # 用户id
        product_pid = request.POST.get('product_pid')
        data = {}
        cart = Cart.objects.filter(userinfo_id=userinfo_id, product_id=product_pid).first()
        if cart:
            if cart.pnum==1:
                data['msg'] = '亲! 至少买一个吧'
            else:
                cart.sumprice = round (float(cart.sumprice) / cart.pnum * (cart.pnum - 1),2)
                cart.pnum -= 1
                cart.save()
                data['msg'] = '请求成功'
                return JsonResponse(data)
        else:
            data['msg'] = '请添加商品'
            return JsonResponse(data)

#  减少数目
@login_required
def delCart(request):
    if request.method == 'GET':
        thisuser = UserMethod(request)
        userinfo = thisuser.getUserInfo()
        thisuser = UserInfo.objects.filter(username=userinfo['username']).first()
        userinfo_id = thisuser.uid  # 用户id
        product_pid = request.GET.get('pid')
        Cart.objects.filter(userinfo_id=userinfo_id, product_id=product_pid).delete()
        return HttpResponseRedirect("/shop/showcart/")

# 支付
@login_required
def cash_payment(request):
    if request.method == 'POST':
        allcartpay = PayCart.objects.filter().all()
        if allcartpay != '':
            PayCart.objects.filter().all().delete()
        thisuser = UserMethod(request)
        userinfo = thisuser.getUserInfo()
        thisuser = UserInfo.objects.filter(username=userinfo['username']).first()
        userinfo_id = thisuser.uid  # 用户id
        cartlist = request.POST.get("cartlist")  #支付的购物车id
        cartlist = cartlist.split('#')
        for list in cartlist:
            if list !='':
                list= int(list)
                newcart= Cart.objects.filter(cid=list).first()
                cartpay=PayCart(cart_id=newcart.cid)
                cartpay.save()
        allcart = Cart.objects.filter(userinfo_id=userinfo_id).all()
        this_address = Address.objects.filter(userinfo_id=userinfo_id).first()
        Clist= PayCart.objects.filter().all()

        data = {
            'userinfo': userinfo,
            'allcart': allcart,
            'curaddress': this_address.getFullAddress(),
            'Clists':Clist,
        }
        return render(request, 'bshop/pay.html', data)


5、源码获取方式

🍅由于篇幅限制,获取完整文章或源码、代做项目的,查看我的【用户名】、【专栏名称】、【顶部选题链接】就可以找到我啦🍅

感兴趣的可以先收藏起来,点赞、关注不迷路,下方查看👇🏻获取联系方式👇🏻

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值