当前位置: 首页 > news >正文

[免费]基于Python的Django商品二手交易平台【论文+源码+SQL脚本】

大家好,我是python222_小锋老师,看到一个不错的基于Python的Django商品二手交易平台,分享下哈。

项目视频演示

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

项目介绍

随着互联网时代的兴起,二手交易也逐渐以网站的形式出现在大众的视野。二手交易不仅能促进资源循环利用和综合利用,也可以发展经济,各取所需,为社会节约财富。基于Python二手物品交易网站是计算机技术与二手市场交易相结合的产物,通过网站系统实现了信息的高效管理。随着计算机技术的不断提高,计算机已经深入到社会生活的各个角落.而采用人工管理和发布交易信息的方法,不仅效率低,易出错,手续繁琐,而且耗费大量人力。为了满足大众对二手市场的需求,特编此基于python的二手交易网站系统。

系统展示

部分代码

{% extends 'base_foot.html' %}{% block body %}<div class="header_con" id="header_con"><div class="header"><div class="welcome fl">欢迎来到再市场!</div><div class="fr">
{#                判断是否已经登录#}{% if request.session.user_name|default:'' != '' %}<div class="login_btn fl"><img class="img-circle" align="center" src="{{ MEDIA_URL }}{{ user.ulogo }}" alt="头像"/><font color="#ff4500">{{ request.session.user_name }}</font></div><div class="login_btn fl"><span>|</span><em><a href="{% url "df_user:logout" %}">退出</a></em></div>{% else %}<div class="login_btn fl"><a href="{% url "df_user:login" %}">登录</a><span>|</span><a href="{% url "df_user:register" %}">注册</a></div>{% endif %}<div class="user_link fl"><span>|</span><a href="{% url "df_goods:index" %}">首页</a><span>|</span><a href="{% url "df_user:info" %}">用户中心</a><span>|</span><a href="{% url "df_user:message" %}">消息中心</a></div></div></div></div><div class="search_bar clearfix"><div class="search_con fl"><script>$(function () {$('.input_btn').click(function () {q = $('.input_text').val();if(q==""){alert("请输入搜索内容");}else{location.href = '{% url "df_goods:ordinary_search" %}?q='+q+'&page=1'}})})</script><input type="text" class="input_text fl" name="q" placeholder="搜索商品"><input type="button" class="input_btn fr" name="" value="搜索"></div>{% if guest_cart == 1 %}<div class="guest_cart fr"><a href="{% url "df_cart:cart" %}" class="cart_name fl">购物车</a><div class="goods_count fl" id="show_count">{{ cart_num }}</div></div>{% else %}<div class="guest_cart fr"><a href="{% url "df_cart:cart" %}" class="cart_name fl">购物车</a><div class="goods_count fl" id="show_count">0</div></div>{% endif %}</div>
{% block content %}
{% endblock content %}
{% block center_body %}
{% endblock center_body %}{% endblock body %}
from django.db import transaction
from django.http import JsonResponse
from django.shortcuts import render, HttpResponsefrom datetime import datetime
from decimal import Decimalfrom .models import OrderInfo, OrderDetailInfo
from ..df_cart.models import CartInfo
from ..df_user.models import UserInfo
from ..df_user import user_decorator@user_decorator.login
def order(request):uid = request.session['user_id']user = UserInfo.objects.get(id=uid)cart_ids = request.GET.getlist('cart_id')carts = []total_price = 0for goods_id in cart_ids:cart = CartInfo.objects.get(id=goods_id)carts.append(cart)total_price = total_price + float(cart.count) * float(cart.goods.gprice)total_price = float('%0.2f' % total_price)trans_cost = 10  # 运费total_trans_price = trans_cost + total_pricecontext = {'title': '提交订单','page_name': 1,'user': user,'carts': carts,'total_price': float('%0.2f' % total_price),'trans_cost': trans_cost,'total_trans_price': total_trans_price,# 'value':value}return render(request, 'df_order/place_order.html', context)'''
事务提交:
这些步骤中,任何一环节一旦出错则全部退回1
1. 创建订单对象
2. 判断商品库存是否充足
3. 创建 订单 详情 ,多个
4,修改商品库存
5. 删除购物车
'''@user_decorator.login
@transaction.atomic()  # 事务
def order_handle(request):uid = request.session['user_id']user = UserInfo.objects.get(id=uid)tran_id = transaction.savepoint()  # 保存事务发生点cart_ids = request.POST.get('cart_ids')  # 用户提交的订单购物车,此时cart_ids为字符串,例如'1,2,3,'user_id = request.session['user_id']  # 获取当前用户的iddata = {}try:order_info = OrderInfo()  # 创建一个订单对象now = datetime.now()order_info.oid = '%s%d' % (now.strftime('%Y%m%d%H%M%S'), user_id)  # 订单号为订单提交时间和用户id的拼接order_info.odate = now  # 订单时间order_info.user_id = int(user_id)  # 订单的用户idorder_info.ototal = Decimal(request.POST.get('total'))  # 从前端获取的订单总价order_info.oaddress = user.uaddressorder_info.save()  # 保存订单for cart_id in cart_ids.split(','):  # 逐个对用户提交订单中的每类商品即每一个小购物车cart = CartInfo.objects.get(pk=cart_id)  # 从CartInfo表中获取小购物车对象order_detail = OrderDetailInfo()  # 大订单中的每一个小商品订单order_detail.order = order_info  # 外键关联,小订单与大订单绑定goods = cart.goods  # 具体商品if cart.count <= goods.gkucun:  # 判断库存是否满足订单,如果满足,修改数据库goods.gkucun = goods.gkucun - cart.countgoods.save()order_detail.goods = goodsorder_detail.price = goods.gpriceorder_detail.count = cart.countorder_detail.username=user.unameorder_detail.shopername = goods.gunitorder_detail.save()cart.delete()  # 并删除当前购物车else:  # 否则,则事务回滚,订单取消transaction.savepoint_rollback(tran_id)# return JsonResponse(data)return HttpResponse('库存不足')data['ok'] = 1transaction.savepoint_commit(tran_id)except Exception as e:print("%s" % e)print('未完成订单提交')transaction.savepoint_rollback(tran_id)  # 事务任何一个环节出错,则事务全部取消return JsonResponse(data)@user_decorator.login
def pay(request):pass

源码下载

链接:https://pan.baidu.com/s/1SeoB0v4svJgkQmKUmO2iKg
提取码:1234


文章转载自:

http://7kGalZ4p.bpmtg.cn
http://hxSNhA6k.bpmtg.cn
http://Gq01JvIV.bpmtg.cn
http://Zyl66Y96.bpmtg.cn
http://3AaHnF6w.bpmtg.cn
http://yjMDT6Fs.bpmtg.cn
http://uIesXNZU.bpmtg.cn
http://pLoMGuv7.bpmtg.cn
http://YTOoEI0k.bpmtg.cn
http://uI7LAVqA.bpmtg.cn
http://ZRl7we9g.bpmtg.cn
http://Pu9tWO9C.bpmtg.cn
http://ZnFXee4P.bpmtg.cn
http://O9ZCptLK.bpmtg.cn
http://Piz4L4Tv.bpmtg.cn
http://vLUVuvyp.bpmtg.cn
http://Pqqumh4T.bpmtg.cn
http://zJwAHzZe.bpmtg.cn
http://r3qrX8hN.bpmtg.cn
http://H1GAiBjZ.bpmtg.cn
http://ErNPkE00.bpmtg.cn
http://mPI6Rj5q.bpmtg.cn
http://gZC2pRmD.bpmtg.cn
http://RJ00ehAe.bpmtg.cn
http://bGkuRCLV.bpmtg.cn
http://Ad2yORI8.bpmtg.cn
http://X2iL2fqP.bpmtg.cn
http://JGTKxESJ.bpmtg.cn
http://qloSYM6e.bpmtg.cn
http://NQ8O9PhS.bpmtg.cn
http://www.dtcms.com/a/385153.html

相关文章:

  • 「Memene 摸鱼日报 2025.9.15」Gemini 应用在美国 iOS 下载量超越 ChatGPT,西湖大学推出 AI 审稿系统
  • 并发和并行区别
  • RabbitMQ 内存管理与性能优化
  • VSCode关闭C或C++项目启动时的自动cmake功能
  • Git 查看状态(git status)、查看提交记录(git log)和提交日志(git reflog)
  • 第五届长城杯(京津冀蒙版)WEB
  • N1 junior 2025 safenotes
  • 2025年09月15日Github流行趋势
  • 通过网络强化增强混合IT环境的安全
  • 【数据结构入门】排序算法(5):计数排序
  • 超大规模多模态交通数据集:320TB+海量数据资源,涵盖行车视频、无人机航拍、第一视角步行骑行与道路监控,助力自动驾驶与智慧交通算法突破
  • [数据结构——Lesson13.冒泡与选择排序]
  • tar-符号连接(软连接)
  • php学习 (第六天)
  • MTK Linux Charger驱动分析(二) - power_supply_core.c
  • 如何做好AI智能体
  • 邻接矩阵幂 A^m 的几何意义
  • PL3381T/PL3383T/PL3384T 12V非隔离降压型芯片(200/300/400mA)
  • 食品科技企业NotCo完成SAP系统升级 构建统一数字化平台
  • LinuxC++项目开发日志——高并发内存池(6-内存回收机制)
  • 数值计算2
  • 硬件 - oring多电源切换
  • RocketMQ-高性能消息中间件的原理
  • DevOps历程--GitLab安装与使用教程(Docker安装和编译安装两种方式)
  • 大屏可视化动图渲染
  • Claude Code生态、实战
  • 系统架构设计师备考第24天——需求工程
  • 逻辑回归模型:基于鸢尾花数据集的多分类任务全流程
  • 实战适配器模式
  • OpenLayers数据源集成 -- 章节十三:EsriJSON图层详解