网易首页 > 网易号 > 正文 申请入驻

Python + SQLite 实战:进销存管理界面,直接形成生产力

0
分享至

前一篇,我们用 SQLite 从零搭好了进销存的数据库结构——商品、供应商、客户、采购、销售、库存几张表一建,再配一条“查库存全貌”的 SQL,完整的数据库已经成形。
可是只一个数据库,还无法直接落地使用,无法形成生产力。

场景:

一个小超市,如何来使用?

天天在工具里敲 SQL?那不是干活的节奏,是折腾人的节奏。
就算你愿意敲,你老婆、你店员、你库管,他们更不会。

真正能落地的进销存,必须是一个界面:打开就能用,点几下就记账,不用记任何 SQL。

今天这一篇,我们就站在前一篇的基础上,用Python + tkinter + SQLite给数据库“穿上一件衣服”,让它变成一个真正能干活的工具。


直接可以使用

从数据库到界面:五步搭起进销存系统第一步:环境准备,安装python

(可以找一下,我的文章 一键配置python环境)

第二步:数据库已经在前一篇建好了,直接用第三步:用 Python 连接数据库,做一个简单操作界面

import sqlite3class 进销存数据库:def __init__(self, db_file):self.db_file = db_filedef 查询商品列表:"""查所有商品,顺便看库存"""conn = sqlite3.connect(self.db_file)cursor = conn.cursor()cursor.execute('''SELECT g.goods_name, g.spec, g.unit, g.sale_price, s.balanceFROM goods gLEFT JOIN stock s ON g.goods_id = s.goods_idresults = cursor.fetchall()conn.close()return resultsdef 添加采购记录(self, 日期, 供应商ID, 商品ID, 数量, 单价):"""采购入库,同时更新库存"""conn = sqlite3.connect(self.db_file)cursor = conn.cursor()金额 = 数量 * 单价# 开启事务:要么全成功,要么全失败try:cursor.execute("BEGIN")# 1. 插入采购记录cursor.execute('''INSERT INTO purchase (purchase_date, supplier_id, goods_id, quantity, unit_price, amount)VALUES (?, ?, ?, ?, ?, ?)''', (日期, 供应商ID, 商品ID, 数量, 单价, 金额))# 2. 更新库存(入库)cursor.execute('''UPDATE stockSET in_qty = in_qty + ?, balance = balance + ?WHERE goods_id = ?''', (数量, 数量, 商品ID))conn.commit()return True, f"采购入库成功,金额:{金额:.2f} 元"except:conn.rollback()return False, "入库失败,请检查数据"finally:conn.close()# ... 其他方法:销售出库、库存查询、统计报表等
第四步:用 tkinter 搭一个“商品管理”界面(最简单的例子)

先从最简单的开始:一个窗口,一个表格,显示所有商品和库存

import tkinter as tkfrom tkinter import ttk# 创建主窗口root = tk.Tk()root.title("我的进销存")root.geometry("900x500")# 创建表格tree = ttk.Treeview(root, columns=('商品名', '规格', '单位', '售价', '库存'), show='headings')tree.heading('商品名', text='商品名')tree.heading('规格', text='规格')tree.heading('单位', text='单位')tree.heading('售价', text='售价')tree.heading('库存', text='库存')# 从数据库加载数据db = 进销存数据库('进销存.db')商品列表 = db.查询商品列表()for 商品 in 商品列表:tree.insert('', 'end', values=商品)tree.pack(fill='both', expand=True, padx=10, pady=10)root.mainloop()
第五步:再加几个按钮,真正开始干活

光看不够,还要能记账。
我们再加几个按钮:“新增商品”、“采购入库”、“销售出库”、“库存查询”,每个按钮打开一个小窗口,填表提交。

def 新增商品窗口():"""点一下,弹出一个小窗口,填商品名、售价,保存"""win = tk.Toplevel()win.title("新增商品")tk.Label(win, text="商品名:").grid(row=0, column=0)名称 = tk.Entry(win)名称.grid(row=0, column=1)tk.Label(win, text="售价:").grid(row=1, column=0)售价 = tk.Entry(win)售价.grid(row=1, column=1)def 保存:# 这里调用数据库的添加商品方法db.添加商品(名称.get(), 售价.get())win.destroy() # 关闭窗口messagebox.showinfo("成功", "商品已添加")tk.Button(win, text="保存", command=保存).grid(row=2, column=1)# 在主窗口加按钮btn_frame = tk.Frame(root)btn_frame.pack(fill='x', padx=10, pady=5)tk.Button(btn_frame, text="新增商品", command=新增商品窗口).pack(side='left', padx=5)tk.Button(btn_frame, text="采购入库", command=采购入库窗口).pack(side='left', padx=5)tk.Button(btn_frame, text="销售出库", command=销售出库窗口).pack(side='left', padx=5)tk.Button(btn_frame, text="库存查询", command=刷新库存表).pack(side='left', padx=5)

到这里,你的进销存就已经能用了:

  • 点击“新增商品”,填表保存,数据库里就多了一个商品。
  • 点击“采购入库”,选供应商、选商品、填数量单价,库存自动加。
  • 点击“销售出库”,填数量,库存自动减(还能先查库存够不够)。
  • 点击“库存查询”,表里实时显示所有商品的当前库存。
三、落地效果:个体老板的日常工作流场景一:每天开店前,先看库存

打开软件 → 点“库存查询” → 一眼看到哪些商品库存不足(比如库存小于 10 的,可以标红)。
立刻打电话补货,不用等到客户上门才想起来。

场景二:供应商送货上门,直接扫码入库(此功能还未完成)

如果有扫码枪(几十块钱那种 USB 扫码枪),界面里光标停到“商品条码”输入框,对着商品条码一扫,条码自动填进去,数量默认是 1,改一下数量,点“保存”,采购记录就进了,库存也跟着变。

场景三:客户来买东西,快速开单

在“销售出库”窗口,选商品、填数量,系统先查库存够不够,够了就扣库存、生成销售记录。
如果客户要多件,可以连续扫几个条码,一笔订单里包好几样商品,最后一起算钱。

场景四:月底打表,看赚了多少钱

点“统计报表”,选个日期范围,立刻出一张表:

  • 本月采购总额:XX 元。
  • 本月销售总额:XX 元。
  • 毛利润:XX 元(销售减采购)。

甚至可以按商品看:哪些商品卖得多,哪些几乎不动,下次进货心里有数。

最后一句

前一篇,我们用 SQLite 搭好了进销存的“骨架”;这一篇,我们用 Python + tkinter 给它穿上了“衣服”。

从数据库到界面,从技术到生产力,个体老板的进销存落地,其实就这么几步:

  1. 数据库建表(前一篇)。
  2. Python 写几个方法操作数据库。
  3. tkinter 搭几个窗口做界面。
  4. 打开就能用,扫码就能记账。

如果你现在就想动手,我可以把完整的 Python 代码发你,你只需要改一下数据库文件名,就能跑起来。

关注我,下一期我们继续讲:如何给这个系统加上“导出 Excel 报表”和“数据备份”功能,让它真正成为你经营生意的“数字助手”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
私吞遗产、"虐待"?68岁演员刘佩琦泪洒法庭,花320万养出个仇人

私吞遗产、"虐待"?68岁演员刘佩琦泪洒法庭,花320万养出个仇人

历史点行
2026-08-08 15:59:24
45岁黄宗泽恋情曝光,对方身份疑为24岁TVB咪神,身材好到流鼻血

45岁黄宗泽恋情曝光,对方身份疑为24岁TVB咪神,身材好到流鼻血

兵卒史
2026-08-08 15:36:55
浙江台风最强风雨时段来了,这几小时千万别出门

浙江台风最强风雨时段来了,这几小时千万别出门

纪百事
2026-08-08 12:47:12
“满仓翻倍,云南锗业爱你”!云南锗业四连板股价破百,年内涨幅超200%,有人晒账户狂欢“5天赚了一个小a9”,有人踏空失眠哭诉比下跌...

“满仓翻倍,云南锗业爱你”!云南锗业四连板股价破百,年内涨幅超200%,有人晒账户狂欢“5天赚了一个小a9”,有人踏空失眠哭诉比下跌...

金融界
2026-08-08 17:36:31
闲鱼能买到的东西有多离谱?

闲鱼能买到的东西有多离谱?

康富贵碎碎念
2026-08-05 12:12:01
真凉凉了!美国正式封堵“赴美生子”!撤签、终身禁入,连孩子美国籍都要动!您支持吗?

真凉凉了!美国正式封堵“赴美生子”!撤签、终身禁入,连孩子美国籍都要动!您支持吗?

华人生活网
2026-08-08 01:49:08
1-0,大连英博德比双杀铁人,斯坦丘再轰世界波,毕津浩+马马杜伤退

1-0,大连英博德比双杀铁人,斯坦丘再轰世界波,毕津浩+马马杜伤退

替补席看球
2026-08-08 21:40:29
母亲怎么会不知道自己的孩子呢?网友:母子连心,只是骗自己而已

母亲怎么会不知道自己的孩子呢?网友:母子连心,只是骗自己而已

夜深爱杂谈
2026-08-08 21:11:20
决赛0射门被骂上热搜,塔利亚菲科直播说真相:阿根廷活活累垮的

决赛0射门被骂上热搜,塔利亚菲科直播说真相:阿根廷活活累垮的

圣西罗的太阳
2026-08-08 13:57:11
人民日报推荐消除内脏脂肪锻炼方式:简单到想不到,但试后真有效

人民日报推荐消除内脏脂肪锻炼方式:简单到想不到,但试后真有效

普陀动物世界
2026-08-06 11:09:37
中国福登!张稀哲曾牵小球童入场:昨晚球童成为他队友太传奇

中国福登!张稀哲曾牵小球童入场:昨晚球童成为他队友太传奇

邱泽云
2026-08-08 14:52:52
太离谱了!再3年詹姆斯就能拿NBA退休金,数字曝光,常人望尘莫及

太离谱了!再3年詹姆斯就能拿NBA退休金,数字曝光,常人望尘莫及

大西体育
2026-08-08 20:05:22
仗没法打了,越来越多的乌军调转枪口,加入俄军为俄罗斯作战

仗没法打了,越来越多的乌军调转枪口,加入俄军为俄罗斯作战

共工之锚
2026-08-08 00:09:44
国足3-2“大血洗”!赛后评分曝光:门将成“脓包”,一人太亮眼

国足3-2“大血洗”!赛后评分曝光:门将成“脓包”,一人太亮眼

林子说事
2026-08-08 09:01:42
黄金创今年来最大单周涨幅!金饰克价,重回1300元;黄金股“抢跑”:A股黄金产业链已提前启动

黄金创今年来最大单周涨幅!金饰克价,重回1300元;黄金股“抢跑”:A股黄金产业链已提前启动

每日经济新闻
2026-08-08 15:31:17
随着苏州东吴2-1,南京城市1-1,定南赣联2-1,中甲最新积分榜出炉

随着苏州东吴2-1,南京城市1-1,定南赣联2-1,中甲最新积分榜出炉

侧身凌空斩
2026-08-08 22:09:05
悲催啊!朱女士爆料和丈夫都是81年出生,曾是同事,在班车上相识相恋,如今直言“相信活着”

悲催啊!朱女士爆料和丈夫都是81年出生,曾是同事,在班车上相识相恋,如今直言“相信活着”

火山詩话
2026-08-08 06:18:15
小S带二女儿Lily拍广告全裸,背影被嘲像企鹅

小S带二女儿Lily拍广告全裸,背影被嘲像企鹅

雅儿姐游世界
2026-08-08 22:12:25
网红自杀案在韩国引发很大冲击,整个过程被完整直播,目前没有官方结论

网红自杀案在韩国引发很大冲击,整个过程被完整直播,目前没有官方结论

韩小娱
2026-08-07 08:41:42
爆冷!中超领头羊轰然倒下:6轮不胜,大黑马升到第3名

爆冷!中超领头羊轰然倒下:6轮不胜,大黑马升到第3名

足球狗说
2026-08-08 21:57:23
2026-08-08 23:23:00
侃故事的阿庆
侃故事的阿庆
几分钟看完一部影视剧,诙谐幽默的娓娓道来
722文章数 9143关注度
往期回顾 全部

科技要闻

SpaceX最快下周完成600亿美元收购Cursor

头条要闻

十多万人报名的考试成绩全作废 考生:为何让别人买单

头条要闻

十多万人报名的考试成绩全作废 考生:为何让别人买单

体育要闻

29岁克拉克死因公布:吸食海洛因与可卡因

娱乐要闻

萧敬腾坦白!与大14岁妻子选择丁克

财经要闻

一枚“回旋镖”,击中王思聪

汽车要闻

这是"北京卫士"!星钽5X或搭载华为ADS Pro高阶驾驶辅助

态度原创

家居
健康
亲子
手机
公开课

家居要闻

2026建博会(广州) 公装联探展交流活动

打干细胞会不会诱发癌症?

亲子要闻

工程车小故事 #儿童益智玩具推荐

手机要闻

苹果正测试iOS 26.6.1系统版本,有望一到两周内向用户推送

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版