news 2026/6/12 5:00:02

Python+Django实战:打造智能生鲜果蔬进销存管理系统(采购入库、库存预警、销售开单、毛利统计)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python+Django实战:打造智能生鲜果蔬进销存管理系统(采购入库、库存预警、销售开单、毛利统计)

一、项目背景与痛点

生鲜门店、果蔬便利店、小型农贸商户日常经营中,多采用手工记账、Excel台账管理进销数据,生鲜商品保质期短、损耗率高,传统管理模式弊端突出:

  • 人工记账效率低、数据易错:入库、销售手写登记,盘点耗时巨大,数量、成本核算经常出错;
  • 无库存自动预警机制:生鲜临期、缺货无法自动提醒,缺货丢单、临期变质损耗严重;
  • 采购与销售数据割裂:采购成本、售价无统一归集,无法精准核算单品毛利、门店总利润;
  • 供应商信息零散:供货商联系方式、历史供货价无系统化存档,比价、对账繁琐;
  • 缺少经营数据看板:无法按日/月统计销量、热销品类、亏损商品,经营决策缺少数据支撑。

针对生鲜行业经营痛点,基于Python+Django4.2搭建轻量化生鲜进销存系统,实现供应商管理、采购入库、库存管控、前台销售、临期预警、经营统计全流程闭环,区别往期考试、图书、天气、日志、访客、网盘、OAuth登录、聊天室等所有项目,新增商贸进销存赛道。

二、核心目标与定位

核心目标:实现供应商建档→商品分类→采购入库→库存实时更新→前台开单销售→库存扣减→临期预警→损耗登记→毛利统计全链路数字化,替换手工台账,管控生鲜损耗、精准核算经营利润。
项目定位:中小型生鲜实体店专用进销存,原生Django MVT架构,无需前后端分离;划分管理员、采购员、收银员三类权限,各司其职;适配社区果蔬店、农贸小摊、生鲜便利店落地使用。
设计理念:采购销售全链路留痕、库存动态管控、临期自动预警、经营数据量化,降低生鲜损耗、提升门店经营管控能力。

三、整体技术方案

3.1 系统架构概览

本系统采用分层架构设计,各模块间数据流清晰,职责明确。整体架构如下图所示:

基础支撑层

核心业务层

前台业务层

前台销售开单模块
选择商品、录入数量、生成销售单据

损耗报备录入模块
变质商品登记扣减库存

采购入库管理模块
录入采购单、关联供应商、批量入库

库存变动管理模块
出入库自动增减库存

临期预警管理模块
系统自动筛选临期生鲜

供应商信息管理模块
供货商信息、历史报价管理

经营统计看板模块
销量/成本/毛利数据汇总

3.2 数据流转说明

  1. 正向业务流(商品流转):

    • 采购入库 → 库存增加 → 前台销售 → 库存减少
    • 系统自动追踪每个商品的入库时间、保质期、当前库存量
  2. 逆向业务流(异常处理):

    • 损耗登记 → 库存扣减 → 数据统计
    • 临期预警 → 促销处理 → 减少损失
  3. 数据统计流

    • 所有业务操作 → 数据聚合 → 经营看板
    • 实时计算成本、毛利、周转率等关键指标

3.3 技术栈详解

后端框架
  • Python 3.11:主开发语言,性能优异,生态丰富
  • Django 4.2:全功能Web框架,提供ORM、Admin、认证等核心组件
  • MySQL 8.0:关系型数据库,存储结构化业务数据
核心算法
  • 日期计算算法:基于datetime模块,实现商品保质期自动判定
    • 临期预警(保质期剩余≤30%)
    • 过期自动下架(保质期已过)
  • 聚合查询引擎:Django ORM聚合运算
    • 实时计算单品毛利:售价 - 成本价
    • 统计品类销售额、成本、毛利率
    • 供应商供货质量分析
前端与可视化
  • Django模板引擎:服务端渲染,快速开发
  • ECharts 5.0:数据可视化库
    • 销售额趋势图(折线图)
    • 品类占比分析(饼图)
    • 库存健康度(仪表盘)
安全与权限
  • 自定义中间件:基于岗位的权限控制
    • 收银员:仅限销售、查询功能
    • 采购员:采购、供应商管理
    • 管理员:全功能访问+数据统计
  • 数据隔离:门店级数据隔离,保障多门店部署安全

3.4 关键技术特性

  1. 实时库存同步:任何出入库操作立即更新库存,避免超卖
  2. 智能预警机制:基于保质期的多级预警(临期、即将过期、已过期)
  3. 毛利自动计算:销售时自动关联采购成本,实时计算毛利
  4. 供应商评估:基于供货质量、价格、时效的多维度评估
  5. 数据驱动决策:经营看板提供实时数据支持,辅助管理决策

3.5 部署架构

生产环境部署方案: ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Nginx反向代理 │───▶│ Gunicorn应用服务器│───▶│ MySQL数据库 │ │ (负载均衡+SSL) │ │ (Django应用) │ │ (主从复制) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 静态文件CDN │ │ Redis缓存 │ │ 备份服务器 │ │ (JS/CSS/图片) │ │ (Session/热点数据)│ │ (每日自动备份) │ └─────────────────┘ └─────────────────┘ └─────────────────┘

该方案支持单店部署,也支持多门店连锁模式,通过数据库分店标识实现数据隔离与集中管理。

四、核心能力模块详解

1、供应商信息管理模块

  1. 供应商档案录入:名称、联系方式、主营品类、合作状态;
  2. 历史采购报价留存,同商品多供货商比价;
  3. 停用/启用供应商状态管控,筛选活跃合作商家;
  4. 关联对应采购单据,一键查询该供应商全部供货记录。

2、商品分类与档案模块

  1. 多级分类:叶菜、瓜果、肉禽、干货等生鲜分类;
  2. 单品录入:采购成本、销售定价、保质期天数、规格;
  3. 批量导入商品,支持Excel批量建档;
  4. 区分生鲜短保/干货长保品类,差异化预警规则。

3、采购入库管理模块(核心)

  1. 绑定供应商生成采购单据,自动记录采购单价、采购数量;
  2. 入库提交后系统自动增加对应库存;
  3. 采购单永久存档,支持按日期/供应商检索对账;
  4. 同商品多次采购自动更新平均成本价。

4、前台销售开单模块

  1. 勾选商品、填写售卖数量,自动核算应收金额;
  2. 开单完成实时扣减库存,生成销售流水;
  3. 支持单品打折、整单优惠,自动记录实际收款;
  4. 当日销售单据一键检索、重打小票。

5、库存与临期预警模块

  1. 实时动态库存:入库加、销售/损耗减;
  2. 缺货预警:库存低于安全线自动标记;
  3. 临期预警:根据保质期自动筛选即将过期生鲜;
  4. 过期商品禁止前台销售,只能做损耗登记。

6、生鲜损耗登记模块

  1. 变质、磕碰生鲜录入损耗单,系统自动扣减库存;
  2. 按月统计各类商品损耗率,优化采购量;
  3. 损耗数据计入成本,保证毛利核算精准。

7、经营数据统计模块

  1. 日/月总销售额、采购总成本、整体毛利自动计算;
  2. 热销商品排行、滞销商品统计;
  3. 各品类营收占比图表展示;
  4. 损耗成本单独统计,直观查看生鲜亏损数据。

五、创新价值与亮点

  1. 生鲜专属临期预警:针对果蔬短保特性做时间管控,从源头减少变质损耗;
  2. 自动成本毛利核算:摒弃人工算账,系统根据采购、销售数据自动算利润;
  3. 全单据溯源采购/销售/损耗全单据存档,对账高效;
  4. 多角色权限拆分收银员不能改采购价,采购员无法销售开单,数据安全;
  5. 轻量化部署小门店低成本落地,替代昂贵商用进销存软件。

六、应用前景与落地场景

  1. 社区果蔬生鲜小店日常进销存管控;
  2. 农贸市场个体户进销台账管理;
  3. 校园生鲜便利店经营统计;
  4. 毕设/简历优质商贸类实战项目。

七、完整代码结构示例

django-fresh-stock/├── manage.py ├── fresh_project/│ ├── settings.py │ ├── urls.py │ └── middleware.py ├── apps/│ ├── supplier/# 供应商管理│ ├── goods/# 商品分类&档案│ ├── purchase/# 采购入库│ ├── sale/# 前台销售开单│ ├── stock_warn/# 库存临期预警│ ├── loss_record/# 损耗登记│ └── data_stat/# 经营统计├── core/│ ├── date_tool.py# 临期时间计算│ ├── profit_calc.py# 毛利核算工具│ └── stat_data.py# 统计封装├── static/├── templates/└── requirements.txt

示例1:商品、采购单核心模型

fromdjango.dbimportmodels# 商品分类classCategory(models.Model):name=models.CharField(max=30,verbose="分类名称")create_time=models.DateTimeField(auto_now_add=True)# 商品档案classGoods(models.Model):name=models.CharField(max=50,verbose="商品名称")category=models.ForeignKey(Category,on_delete=models.CASCADE)cost_price=models.DecimalField(max_digits=6,decimal_places=2,verbose="采购成本")sale_price=models.DecimalField(max_digits=6,decimal_places=2,verbose="售价")shelf_day=models.IntegerField(verbose="保质期天数")safe_stock=models.IntegerField(default=5,verbose="安全库存")stock=models.IntegerField(default=0,verbose="当前库存")# 采购单据classPurchaseOrder(models.Model):order_no=models.CharField(max=32,unique=True,verbose="采购单号")supplier=models.ForeignKey('supplier.Supplier',on_delete=models.CASCADE)total_cost=models.DecimalField(max_digits=9,decimal_places=2)create_time=models.DateTimeField(auto_now_add=True)

示例2:临期计算工具 core/date_tool.py

fromdatetimeimportdatetime,timedeltaclassDateCheck:@classmethoddefget_warn_day(cls,limit=3):"""获取3天内临期截止日期"""returndatetime.now()+timedelta(days=limit)@classmethoddefis_expire(cls,produce_day,shelf):"""判断是否过期"""deadline=produce_day+timedelta(days=shelf)returndatetime.now()>deadline

示例3 单品毛利计算工具 core/profit_calc.py

classProfitCalc:@classmethoddefcalc_single_profit(sale_num,sale_price,cost_price):"""单品毛利=销量*(售价-进价)"""returnround((sale_price-cost_price)*sale_num,2)

八、总结与展望

本篇聚焦生鲜商贸进销存全新赛道,和历史在线考试、图书管理、天气、日志、网盘、聊天室、访客系统、OAuth登录等全部项目无业务重合,主打库存管控+临期算法+毛利自动化核算,贴合实体门店真实业务。项目完整覆盖采购、销售、损耗、预警、统计全链路,商用落地属性强,后端ORM聚合、时间算法都是求职高频技术点。

后续迭代

  1. 接入小票打印机自动打印销售单据;
  2. 新增会员储值、会员折扣功能;
  3. 批量导出月度经营Excel报表。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 4:59:24

从一道CTF题看Toy Cipher:手把手教你用Python破解‘羊城杯’签到题

从一道CTF题看Toy Cipher:手把手教你用Python破解‘羊城杯’签到题 在CTF竞赛中,密码学题目往往是最考验选手基础功底和思维灵活度的题型之一。去年参加羊城杯时,一道名为"signin"的签到题给我留下了深刻印象——它看似简单却暗藏玄…

作者头像 李华
网站建设 2026/6/12 4:57:19

从原理图符号到PCB封装:Altium Designer一个完整电阻/芯片的诞生全记录

从原理图符号到PCB封装:Altium Designer一个完整电阻/芯片的诞生全记录 在电子设计自动化领域,掌握元器件从无到有的完整创建流程是工程师的必修课。本文将以一个40脚微控制器芯片为例,带您体验Altium Designer中元器件诞生的全生命周期——从…

作者头像 李华
网站建设 2026/6/6 17:41:10

Nintendo Switch游戏文件终极管理工具:NSC_BUILDER完整指南

Nintendo Switch游戏文件终极管理工具:NSC_BUILDER完整指南 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase titlerights enc…

作者头像 李华
网站建设 2026/6/6 17:40:58

TranslucentTB终极指南:3分钟让Windows任务栏变身透明艺术

TranslucentTB终极指南:3分钟让Windows任务栏变身透明艺术 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想让你的Windows桌…

作者头像 李华
网站建设 2026/6/6 17:39:54

手把手教你用TinyProxy配置联通停机卡免流模式(附最新配置文件)

移动网络优化工具TinyProxy的配置与应用指南在移动互联网时代,流量消耗成为许多用户关注的焦点。对于特定运营商套餐用户而言,合理配置网络代理工具能够有效管理流量使用情况。本文将详细介绍一款轻量级代理工具TinyProxy的配置方法,帮助用户…

作者头像 李华