Python出入库简洁系统

您所在的位置:网站首页 出入库报表具体要怎么写 Python出入库简洁系统

Python出入库简洁系统

2023-08-07 23:38| 来源: 网络整理| 查看: 265

         一些基础性的东西,Python对Sqlite的操作,增删改查!一个上午搞定,主要是熟悉下与数据库的交互,在这个基础上面,大家可以做很多的扩展,比如导入导出EXCEL等。

import f import os,sqlite3 print("\t\t小帆哥香烟出入库系统----By Tony\n"); dbpath='TonyCigar.db' #创建数据库和表 if(not os.path.exists(dbpath)): print('初始化数据库和表...') con=sqlite3.connect(dbpath); cur=con.cursor(); cur.execute('create table if not exists cigar(cbarcode varchar(30), cname varchar(30),wprice integer,rprice integer,stocknum integer default 0)'); con.commit(); con.close(); print("数据库和表初始化成功!") print("操作说明:输入对应的数字进行相应的操作\n\n0:录入烟的档案,1:入库,2:出库,3:查询库存\n4:删除某烟档案,5:调整库存,8:退出系统\n"); s=input("请输入对应的数字:"); #录入档案 if(s=='0'): while(1): con=sqlite3.connect(dbpath); cur=con.cursor(); cbarcode=input("输入烟的条码:"); if(cbarcode=='8' or cbarcode==''): print("烟的条码不能为空!"); break; if(len(f.isBarcodeExist(dbpath,cbarcode)))>0: print("此烟已存在!"); else: cname=input("输入烟的名称:"); if(cname==''): print("烟的名称不能为空!"); break; cur.execute('insert into cigar values(?,?,?)',(cbarcode,cname,0)); con.commit(); con.close(); print(cname+":录入档案成功!"); #入库 elif(s=='1'): while(1): cbarcode=input("输入烟的条码:"); if(cbarcode==''): print("烟的条码不能为空!"); break; stocknum=input("输入入库数量:"); if(stocknum=='' or not stocknum.isdecimal()): print("入库数量不能为空且必须是整数!"); break; if(f.inStock(dbpath,cbarcode,int(stocknum))>0): print(f.getCigarName(dbpath,cbarcode)+":入库成功!"); #出库 elif(s=='2'): while(1): cbarcode=input("输入烟的条码:"); if(cbarcode==''): print("烟的条码不能为空!"); break; stocknum=input("输入出库数量:"); if(stocknum=='' or not stocknum.isdecimal()): print("出库数量不能为空且必须是整数!"); break; if(f.outStock(dbpath,cbarcode,int(stocknum))>0): print(f.getCigarName(dbpath,cbarcode)+":出库成功!"); #查询库存 elif(s=='3'): while(1): con=sqlite3.connect(dbpath); cur=con.cursor(); cbarcode=input("输入烟的条码:"); cur.execute("select * from cigar where cbarcode like '%"+cbarcode+"%'"); res=cur.fetchall(); if(len(res))==0: print("条码不存在!"); else: print("-----------------------------------------------------------------------------------"); print("序号\t条码\t\t烟名\t\t\t批发价\t零售指导价\t数量(整条)"); print("-----------------------------------------------------------------------------------"); i=1; for r in res: print('%-5s'%i,r[0],'%-20s'%r[1],'%-15s'%r[2],'%-10s'%r[3],'%-20s'%r[4]);#-左对齐,没有-是右对齐 i+=1 #print(r[0],'\t\t',r[1],'\t\t',r[2],'\t\t\t',r[3],'\t',r[4]); #删除对应烟档案 elif(s=='4'): while(1): con=sqlite3.connect(dbpath); cur=con.cursor(); cbarcode=input("输入要删除的烟的条码:"); if(cbarcode=='8' or cbarcode==''): print("烟的条码不能为空!"); break; if(len(f.isBarcodeExist(dbpath,cbarcode)))==0: print("此烟条码不存在,请检查!"); else: cur.execute('delete from cigar where cbarcode=?',(cbarcode,));#注意元组需要一个逗号 con.commit(); con.close(); print("档案删除成功!"); #调整库存 elif(s=='5'): while(1): con=sqlite3.connect(dbpath); cur=con.cursor(); cbarcode=input("输入烟的条码:"); if(cbarcode=='8' or cbarcode==''): print("烟的条码不能为空!"); break; if(len(f.isBarcodeExist(dbpath,cbarcode)))==0: print("此烟条码不存在,请检查!"); else: stocknum=input("输入调整库存数量:"); if(cbarcode=='8' or cbarcode==''): print("烟的条码不能为空!"); break; cur.execute('update cigar set stocknum=? where cbarcode=?',(stocknum,cbarcode)); con.commit(); con.close(); print(f.getCigarName(dbpath,cbarcode)+":库存调整成功!"); elif(s=='8'): quit(); else: print("请输入正确的数字进行操作!");

        其中感谢网友反馈错误,import f导入的模块是自己写的一些函数,忘记贴出来了,主要是判断条码是否存在等,集中起来,主要是方便复用:

f.py

import sqlite3 #烟的条码是否存在 def isBarcodeExist(dbpath,barcode): con=sqlite3.connect(dbpath); cur=con.cursor(); cur.execute("select * from cigar where cbarcode='"+barcode+"'"); res=cur.fetchall(); return res; #根据烟的条码查询出烟的名称 def getCigarName(dbpath,barcode): con=sqlite3.connect(dbpath); cur=con.cursor(); cur.execute("select cname from cigar where cbarcode='"+barcode+"'"); res=cur.fetchone(); if not(res is None): return res[0]; else: return '不存在此烟!' #入库:先判断条码是否存在 def inStock(dbpath,barcode,stocknum): con=sqlite3.connect(dbpath); cur=con.cursor(); if(len(isBarcodeExist(dbpath,barcode)))==0: print("条码不存在!"); return 0; else: cur.execute('update cigar set stocknum=stocknum+? where cbarcode=?',(stocknum,barcode)); con.commit(); con.close(); return cur.rowcount; #出库:先判断条码是否存在 def outStock(dbpath,barcode,stocknum): con=sqlite3.connect(dbpath); cur=con.cursor(); if(len(isBarcodeExist(dbpath,barcode)))==0: print("条码不存在!"); return 0; else: cur.execute('update cigar set stocknum=stocknum-? where cbarcode=?',(stocknum,barcode)); con.commit(); con.close(); return cur.rowcount


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3