news 2026/5/27 21:24:29

[免费]基于Python的Django+Vue3在线商城系统(简易版)【论文+源码+SQL脚本】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[免费]基于Python的Django+Vue3在线商城系统(简易版)【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的基于Python的Django+Vue3在线商城系统(简易版)【论文+源码+SQL脚本】,分享下哈。

项目视频演示

https://www.bilibili.com/video/BV1a7iLBXEVi/

项目介绍

随着我国经济活力的不断提升和互联网的快速发展,信息的重要性正在显现出来。电子商务作为经济发展的重要一环取得了突飞猛进的发展。由于具有高效便捷的优点,网上购物已经成为一种不可或缺的新型生活方式,依据面向对象的软件工程方法的流程进行开发。系统采用了当下流行的Django来作为后端开发框架,采用B/S架构进行开发,使用Mysql作为系统的存储模块来进行开发。系统设计包括管理员和普通用户两个角色用户,既为普通用户提供了商品浏览以及下单购买的服务,也让管理员有用户维护、商品维护、订单维护的平台。在系统开发完成后,采用完善的测试用例对系统平台进行测试,确保该系统是一个的各项功能都能够正常运行、性能良好的商城平台。

系统展示

部分代码

import json import time from django.contrib.auth import logout, login, authenticate from rest_framework.response import Response from rest_framework.views import APIView from rest_framework.authentication import SessionAuthentication from rest_framework.authentication import BasicAuthentication from rest_framework.permissions import IsAuthenticated from .models import * from .form import * from .pays import get_pay from .serializers import OrderInfosSerializer, CartInfosSerializer class MySessionAuthentication(SessionAuthentication): ''' 自定义SessionAuthentication,取消CSRF验证 ''' def authenticate(self, request): user = getattr(request._request, 'user', None) if not user or not user.is_active: return None return (user, None) class loginView(APIView): ''' 用户登录与注册 ''' # 取消所有认证 authentication_classes = [] permission_classes = [] def post(self, request): context = {'state': 'fail', 'msg': '注册或登录失败'} json_str = json.loads(request.body.decode()) infos = LoginModelForm(data=json_str) d = infos.data username = d['username'] password = d['password'] last_login = '' # 用户存在则进行登录验证 if User.objects.filter(username=username).first(): user = authenticate(username=username, password=password) if user: login(request, user) last_login = user.last_login context = {'state': 'success', 'msg': '登录成功'} else: # 用户不存在进行用户注册 context = {'state': 'success', 'msg': '注册成功'} d = dict(username=username, password=password, is_staff=1, is_active=1) user = User.objects.create_user(**d) user.save() login(request, user) context['username'] = username context['last_login'] = last_login return Response(context) class logoutView(APIView): ''' 退出用户登录 ''' authentication_classes = [MySessionAuthentication, BasicAuthentication] permission_classes = [IsAuthenticated] def post(self, request): context = {'state': 'fail', 'msg': '退出失败'} # 使用内置函数logout退出用户登录状态 if request.user.username: logout(request) context = {'state': 'success', 'msg': '退出成功'} return Response(context) class shopperView(APIView): ''' 个人中心 ''' authentication_classes = [MySessionAuthentication, BasicAuthentication] permission_classes = [IsAuthenticated] def get(self, request): context = {'state': 'success', 'msg': '获取成功', 'data': {}} t = request.GET.get('t', '') payTime = request.session.get('payTime', '') cart_id=request.session.get('cart_id') print('cart_id:',cart_id) # 从Session获取并处理已支付的订单信息,写入订单信息表 if payTime: payInfo = request.session.get('payInfo', '') OrderInfos.objects.create(**payInfo) for i in cart_id: CartInfos.objects.filter(id=i).update(buy=True) del request.session['payTime'] del request.session['payInfo'] del request.session['cart_id'] # 根据当前用户查询用户所有订单信息 orders = OrderInfos.objects.filter(user_id=request.user.id).order_by('-created').all() context['data']['orders'] = OrderInfosSerializer(instance=orders, many=True).data return Response(context) class shopcartView(APIView): ''' GET:获取购物车列表 POST:商品加入购物车 ''' authentication_classes = [MySessionAuthentication, BasicAuthentication] permission_classes = [IsAuthenticated] def get(self, request): context = {'state': 'success', 'msg': '获取成功', 'data': []} # 根据当前用户信息查找对应购物车信息 c = CartInfos.objects.filter(user_id=request.user.id,buy=False).all() context['data'] = CartInfosSerializer(instance=c, many=True).data return Response(context) def post(self, request): context = {'state': 'fail', 'msg': '加购失败'} json_str = json.loads(request.body.decode()) print('json_str',json_str) id = json_str.get('id', '') quantity = json_str.get('quantity', 1) userID = request.user.id commodityInfos = CommodityInfos.objects.filter(id=id).first() # 根据请求信息写入购物车 # if id and commodityInfos and quantity: d = dict(commodityInfos_id=commodityInfos, user_id=userID, quantity=quantity, buy=False) print('d:',d) f = dict(commodityInfos_id=commodityInfos, user_id=userID,buy= False) # CartInfos.objects.update_or_create(d, **f) CartInfos.objects.create(**d) context = {'state': 'success', 'msg': '加购成功'} return Response(context) class paysView(APIView): ''' 支付接口 ''' authentication_classes = [MySessionAuthentication, BasicAuthentication] permission_classes = [IsAuthenticated] def post(self, request): context = {'state': 'fail', 'msg': '支付失败', 'data': ''} json_str = json.loads(request.body.decode()) print('json_str',json_str) total = json_str.get('total', 0) cart_id=json_str.get('cart_id') total = float(str(total).replace('¥', '')) if total: out_trade_no = str(int(time.time())) print(out_trade_no) user_id = request.user.id payInfo = dict(price=total, user_id=user_id, state='已支付') request.session['payInfo'] = payInfo request.session['payTime'] = out_trade_no request.session['cart_id'] = cart_id # return_url为前端的路由地址 # 如果无法确认路由地址,前端可以通过请求参数传递 data = 'http://localhost:8010/#/shopper' #data = get_pay(out_trade_no, total, return_url) #print('testdata',data) context = {'state': 'success', 'msg': '支付成功', 'data': data} return Response(context) class deleteView(APIView): ''' 购物车删除商品 ''' authentication_classes = [MySessionAuthentication, BasicAuthentication] permission_classes = [IsAuthenticated] def post(self, request): context = {'state': 'success', 'msg': '删除成功'} json_str = json.loads(request.body.decode()) username = json_str.get('username', '') carId = json_str.get('carId', '') # 根据请求信息删除购物车信息 if username: CartInfos.objects.filter(user_id=request.user.id).delete() elif carId: CartInfos.objects.filter(id=carId).delete() else: context = {'state': 'fail', 'msg': '删除失败'} return Response(context)

源码下载

链接:https://pan.baidu.com/s/1z-B4vig-tRfsatt4Mwsrig
提取码:1234

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 2:45:02

springboot大学社团管理系统

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 本系统(程序源码数据库调试部署讲解)带文档1万…

作者头像 李华
网站建设 2026/5/18 12:03:01

自考党必看!8个降AI率工具高效避坑指南

自考党必看!8个降AI率工具高效避坑指南 AI降重工具:自考论文的高效避坑利器 在自考论文写作过程中,越来越多的学生开始关注“AIGC率”和“查重率”的问题。随着AI技术的广泛应用,许多学生在使用AI辅助写作时,发现论文中…

作者头像 李华
网站建设 2026/5/10 2:46:19

计算机毕业设计springboot“阴阳师”游戏玩家社区设计与实现 基于Spring Boot框架的“阴阳师”游戏爱好者社区开发与应用 Spring Boot驱动下的“阴阳师”游戏玩家互动社区构建与实

计算机毕业设计springboot“阴阳师”游戏玩家社区设计与实现d58pn (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着信息技术的飞速发展,互联网已经成为人们生活中…

作者头像 李华
网站建设 2026/5/16 14:24:52

YOLOFuse与FastStone Capture注册码、PyCharm激活码无关声明

YOLOFuse 多模态目标检测系统深度解析 在智能安防、夜间巡检和自动驾驶等实际场景中,单一可见光摄像头常常“力不从心”——低光照、雾霾遮挡、伪装目标等问题让传统目标检测模型频频失效。而红外图像凭借其对热辐射的敏感性,在黑暗或恶劣天气下依然能捕…

作者头像 李华
网站建设 2026/5/27 12:21:34

YOLOFuse与蔚来ET7集成:激光雷达+红外互补

YOLOFuse与蔚来ET7集成:激光雷达红外互补 在智能驾驶迈向L3及以上高阶阶段的今天,单一传感器已经难以应对全天候、全场景的感知挑战。夜间无光、浓雾弥漫、强逆光干扰——这些现实路况常常让可见光摄像头“失明”,而毫米波雷达又难以分辨静态…

作者头像 李华
网站建设 2026/5/22 19:02:05

AI重构招聘逻辑:HR的下一个十年,拼的是决策力

AI重构招聘逻辑:HR的下一个十年,拼的是决策力AI得贤招聘官当AI开始深度参与人才评估、甚至跻身招聘决策链,人力资源领域的游戏规则已悄然改写。一份全球调研显示,超75%的企业领导者不再将AI视为单纯工具,而是能并肩作战…

作者头像 李华