一些基础性的东西,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

Python出入库简洁系统相关推荐

  1. 【图像处理】基于matlab车辆出入库计时系统

    目录 基于matlab车辆出入库计时系统 基于matlab车辆出入库计时系统 MATLAB 中可以通过图像处理技术实现车辆的出入库计时系统,具体步骤如下: 读取视频或摄像头采集到的图像序列.可以使用 ...

  2. python出入库_练习1:python设计停车入库出库系统

    前言: 最近在某个测试群看到有人抛出了一个面试题.为了提升自己的编程能力,我也尝试的用python去写了一下. 语言:python,数据库:sqlite  .菜鸟来袭,只是基本实现功能,可能没有考虑太 ...

  3. 基于SSM开发的商品出入库系统

    10115 基于SSM开发的商品出入库系统 代码: 鏈-椄:https://pan@baidu@com/s/17O5OFcf8ONKdn7dOXy57TA(把@换成 . 就可正常访问) 趧-紶-碼:1 ...

  4. 基于SSM开发的商品出入库系统 JAVA MySQL

    10115 基于SSM开发的商品出入库系统 技术 Spring + SpringMVC+ MyBatis 工具 eclipse + tomact + mysql + jdk 功能详情 用户管理 商品管 ...

  5. 基于MATLAB的汽车出入库计时计费车牌识别系统

    一.课题介绍 随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点.智能交通系统通过车辆检测装置对过往的车辆实施检测,提取有关交通数据,达到监控.管理和指 ...

  6. 仓库物品领用吉度PDA出入库盘点扫码方案

    仓库出入库PDA管理说明 领用出入库PDA系统分为两部分,电脑端软件和PDA扫码端,pda和电脑通过网络实时同步,实现pda端扫码出入库实时传输到后台汇总并统计报表. 下面介绍一下具体的使用方法和流程 ...

  7. 自动化立体仓库出入库调度研究

    1 引言 自动化立体仓库是一种用计算机控制管理和用自动控制装置控制堆垛机进行存取作业的仓库.对于给定的自动化立体仓库,其运行效率高低与出入库调度系统的设计好坏有密切关系,文献?1?3?对自动化立体仓库 ...

  8. MATLAB车牌出入库识别(语音播报,库外识别,计时计费)

    一.课题介绍 随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点.智能交通系统通过车辆检测装置对过往的车辆实施检测,提取有关交通数据,达到监控.管理和指 ...

  9. Python简洁的出入库系统(模块化)

    这个主要是对上两篇文章的总结: https://blog.csdn.net/weixin_41896770/article/details/108786470 https://blog.csdn.ne ...

最新文章

  1. Ciruy英雄谭 Chapter 2 Web浏览器如何将数据委托出去(一)
  2. compareHist函数 例子
  3. Hyperopt中文文档:Home
  4. 华为手机拍照后图库里无照片_华为图库中上千张照片,如何快速找到想要的照片?...
  5. mysql php页面流量统计_PHP学习笔记:php网络流量统计系统
  6. linux 文件夹换所属用户,linux普通用户su root切换提示没有文件或目录的解决方法...
  7. 【联盛德W806上手笔记】三、MCU系统与时钟结构
  8. Kubernetes基础:Pod的详细介绍
  9. jsencrypt加密结果false(网罗答案) - 分析篇
  10. 设置office首字母不变大小的手段
  11. 全球首发!5G折叠屏笔记本电脑ThinkPad X1 Fold震撼上市
  12. 什么?是Transformer位置编码
  13. 如何在手机上快速制作小一寸证件照
  14. jmu-python-函数-找钱
  15. USB组合设备——带鼠标功能的键盘
  16. php判断bmi值,孕期你的身体质量BMI值达标了没?根据公式来测测吧
  17. 推荐一个小巧强大的代码编辑器
  18. linux申请端口,linux申请端口申请书
  19. win10系统盘清理
  20. win2012r2下微软杀毒软件SCEP不能手动更新

热门文章

  1. 浅拷贝(副本)与深拷贝
  2. iOS开发——高级篇——iOS开发之网络安全密码学
  3. Python实例:11~20例
  4. cocos编译java时改变使用的javac的版本
  5. Java中对List集合排序的两种方法
  6. 代码动态改变 NGUI UILabel 的字体
  7. OpenResty 简单编写一个Module
  8. C++模板:欧拉函数
  9. STM32工作笔记0094---音乐播放器实验
  10. SpringCloud学习笔记020---MongoDb之json与bson的区别