博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python Mysql 实现人员信息系统
阅读量:4180 次
发布时间:2019-05-26

本文共 9285 字,大约阅读时间需要 30 分钟。

[size=small][color=blue]
项目心得:Python是们非常有意思的语言,之前在51cto看老男孩Python培训视频的时候看他们做的项目是采用文件存储数据和读取数据,而且界面排版我个人不是非常喜欢.我认为将数据存储在Mysql数据库中会更加完美。
项目内容:(1)Python 操作Mysql数据库的方法
(2)Python 面向对象的编程
(3)Python Import方法
(4)Python 的While,Break,Continue,for if 语句结合使用
(5)Python的列表,元组,字符串等等
大体掌握上述东西,此项目做起来就比较顺手.
同时有些方面可能没有考虑完美,也没有很多的注释,但是时间的问题,,以后会逐渐更改和完善
博客声明:本文为原创,如果转载请注明出处.iotos.iteye.com
[/color][/size]
1.Mysql部分:
staff表
[table]
| id | bigint(12) | NO | PRI | 0 | |
| name | varchar(20) | NO | | NULL | |
| sex | enum('M','W') | NO | | NULL | |
| birthday | varchar(20) | NO | | NULL | |
| age | int(4) | NO | | NULL | |
| tel | bigint(12) | YES | | NULL | |
| department | varchar(6) | NO | | NULL | |
| salary | float | NO | | NULL | |
|
[/table]
2.部分代码:
Company.py
#!/usr/bin/python #-*- coding:utf-8 -*- ###################################################################### ## Filename:      company.py ##                ## Copyright (C) 2014.6 ## Author:        TangMeiHao@760209035@qq.com ##               ## Description:   python 实现企业人事管理系统 ##                ###################################################################### import mysql import os import sys import time class company: 	id='' 	thisyear=int(time.strftime("%Y")) 	birthday='' 	name='' 	age=''     	department='' 	opt='' 	def __Menu__(self): 			menus="""\033[35;38m 			    [........SELECT YOUR FUNCTION........] 			    [........   1:ADD  HrTable   ........] 			    [........   2:FIND HrTable   ........] 			    [........   3:MODI HrTable   ........] 			    [........   4:SHOW HrRable   ........] 			    [........   5:DEL  HrTable   ........] 			    [........   6:EXIT SYSTEM    ........]	 			\033[0m"""	 			print menus 			company.opt=raw_input("\t\t\t\033[32;38m    ........    SELECT  OPTION   .........\033[0m\n") 	def __Select__(self): 		while True: 			company.__Menu__(self) 			if company.opt=='1': 				while True: 					company.__Add__(self) 					opt2=raw_input("\t\t\t\033[31;38m    ........   CONTINUE ADD(y/Y)  ........\033[0m\n") 					if opt2=='Y' or opt2=='y'or opt2=='': 						continue 					else: 						break 			elif company.opt=='2': 				while True: 					company.__FIND__(self) 					break 			elif company.opt=='3': 				while True: 					company.__Modify__(self) 					opt2=raw_input("\t\t\t\033[31;38m    ........   CONTINUE MOD(y/Y)  ........\033[0m\n") 					if opt2=='y' or opt2=='Y' or opt2=='': 						continue 					else: 						break 			elif company.opt=='4': 				while True: 					company.__Show__(self) 					break 			elif company.opt=='5': 				while True: 					company.__Delete__(self) 					break 			elif company.opt=='6': 				while True: 					company.__Exit__(self) 					break 			else: 				print "\t\t\t\033[31;38m    [.........  选项错误(AGAIN):    ......]\033[0m\n"     	def __Add__(self): 		while True: 			Id=raw_input("\t\t\t\033[31;38m    [.........  INPUT ID FOR ADD:  ......]\033[0m\n") 			lenid=len(Id) 			intId=int(Id) #将其单独转换为整形,与下面的i[0]数据库读出来的ID进行比较 			Addinstance=mysql.cur 			Addconn=mysql.conn 			MysqlId=Addinstance.execute('select id from staff') 			MysqlIds=Addinstance.fetchmany(1000) 			flag=False	#flag为False,表示这个编号不存在,为True存在,进行再一次输入 			for i in MysqlIds: 				if i[0]==intId:	#判断是否已经存在这个Id,Id为主键 					flag=True 					break 				else:				 					continue 			if flag==True: 				print "\t\t\t\033[31;38m    [.........  %s存在:    ......]\033[0m\n" % Id 			if lenid==11:	#判断输入的Id长度是否为11 				company.name=raw_input("\t\t\t\033[31;38m    ........    INPUT NAME:      .........\033[0m\n") 				company.sex=raw_input("\t\t\t\033[31;38m    ........    INPUT SEX:      .........\033[0m\n") 				company.birthday=raw_input("\t\t\t\033[31;38m    ........    INPUT BIRTHDAY:  .........\033[0m\n") 				company.age=int(raw_input("\t\t\t\033[31;38m    ........    INPUT AGE:       .........\033[0m\n")) 				company.tel=int(raw_input("\t\t\t\033[31;38m    ........    INPUT TEL:       .........\033[0m\n")) 				company.department=raw_input("\t\t\t\033[31;38m    ........    INPUT DEPARTMENT:.........\033[0m\n") 				company.salary=int(raw_input("\t\t\t\033[31;38m    ........    INPUT SALARY:    .........\033[0m\n")) 				value=[company.id,company.name,company.sex,company.birthday,company.age,company.tel,company.department,company.salary] 				Addinstance=mysql.cur 				Addconn=mysql.conn 				Addinstance.execute('insert into staff values(%s,%s,%s,%s,%s,%s,%s,%s)',value) 				Addconn.commit() 				break 			else: 				continue 	def __FIND__(self): 		while True: 			Id=int(raw_input("\t\t\t\033[31;38m    [.........  INPUT ID FOR FIND: ......]\033[0m\n")) 			Addinstance=mysql.cur 			Addconn=mysql.conn 			MysqlId=Addinstance.execute('select id from staff') 			MysqlIds=Addinstance.fetchmany(1000) 			flag=False	#flag为False,表示这个编号不存在,为True存在,进行再一次输入 			for i in MysqlIds: 				if i[0]==Id:	#判断是否已经存在这个Id,Id为主键 					flag=True 					break 				else:				 					continue 			if flag==False: 				print "\t\t\t\033[31;38m    [.........  %s不存在:    ......]\033[0m\n" % Id 			a=mysql.cur 			a.execute('select * from staff where id=%s',Id) 			results=a.fetchmany(1000) 			for r in results: 				Id=r[0] 				name=r[1] 				sex=r[2] 				birthday=r[3] 				age=r[4] 				tel=r[5] 				dep=r[6] 				salary=r[7] 				value=(Id,name,sex,birthday,age,tel,dep,salary)			 			result=""" 			    编号:%s 			    姓名:%s 			    性别:%s 			    出生:%s 			    年龄:%s 			    电话:%s 			    部门:%s 			    薪水:%s					 				""" % value 			print "\t\t\t\033[31;38m    [.........  %s信息如下:.....]\033[0m\n" % Id 			print result 			break 	def __Show__(self): 		a=mysql.cur 		a.execute('select * from staff ') 		results=a.fetchmany(1000) 		for r in results: 			Id=r[0] 			name=r[1] 			sex=r[2] 			birthday=r[3] 			age=r[4] 			tel=r[5] 			dep=r[6] 			salary=r[7] 			value=(Id,name,sex,birthday,age,tel,dep,salary)			 			result=""" 			    编号:%s 			    姓名:%s 			    性别:%s 			    出生:%s 			    年龄:%s 			    电话:%s 			    部门:%s 			    薪水:%s					 				""" % value 			print "\t\t\t\033[31;38m    [.........  %s信息如下:.....]\033[0m\n" % Id 			print result 	def __Modify__(self): 		while True: 			Modinstance=mysql.cur 			Modconn=mysql.conn 			Id=int(raw_input("\t\t\t\033[31;38m    [.........  INPUT ID FOR MOD:  ......]\033[0m\n")) 			MysqlId=Modinstance.execute('select id from staff') 			MysqlIds=Modinstance.fetchmany(1000) 			flag=False 			for i in MysqlIds: 				if i[0]==Id: 					flag=True 					break 				else:				 					continue 			if flag==False: 				print "\t\t\t\033[31;38m    [.........  %s不存在:    ......]\033[0m\n" % Id 			Modinstance.execute('select * from staff where id=%s',Id) 			results=Modinstance.fetchmany(1000) 			for r in results: 				Id=r[0] 				name=r[1] 				sex=r[2]	 				birthday=r[3] 				age=r[4] 				tel=r[5] 				dep=r[6] 				salary=r[7] 				value=(Id,name,sex,birthday,age,tel,dep,salary)			 				result=""" 			   	    编号:%s 			    	    姓名:%s 			    	    性别:%s 			            出生:%s 			            年龄:%s 			            电话:%s 			            部门:%s 			            薪水:%s					 					""" % value 				print "\t\t\t\033[31;38m    [.........  %s信息如下:    ......]\033[0m\n" % name 				print result 				print "\t\t\t\033[31;38m    [.........  %s修改信息:    ......]\033[0m\n" % name 				modid=raw_input("\t\t\t\033[31;38m    输入编号:\033[0m") 				modname=raw_input("\t\t\t\033[31;38m    输入姓名:\033[0m") 				modsex=raw_input("\t\t\t\033[31;38m    输入性别:\033[0m") 				modbirthday=raw_input("\t\t\t\033[31;38m    输入出生:\033[0m") 				modage=raw_input("\t\t\t\033[31;38m    输入年龄:\033[0m") 				modtel=raw_input("\t\t\t\033[31;38m    输入电话:\033[0m") 				moddep=raw_input("\t\t\t\033[31;38m    输入部门:\033[0m") 				modsalary=raw_input("\t\t\t\033[31;38m    输入薪水:\033[0m") 				modify_value=(modid,modname,modsex,modbirthday,modage,modtel,moddep,modsalary,Id) 				Modinstance.execute("update staff set id=%s,name=%s,sex=%s,birthday=%s,age=%s,tel=%s, department=%s,salary=%s  where id=%s",modify_value) 				Modconn.commit() 				print "\t\t\t\033[31;38m    [.........  %s修改成功:    ......]\033[0m\n" % name 			break 	def __Delete__(self): 		Id=int(raw_input("\t\t\t\033[31;38m    [.........  INPUT ID FOR DEL:  ......]\033[0m\n")) 		Delinstance=mysql.cur 		Delconn=mysql.conn 		Delinstance.execute('select * from staff where id=%s',Id) 		results=Delinstance.fetchmany(1000) 		for r in results: 			Id=r[0] 			name=r[1] 			sex=r[2] 			birthday=r[3] 			age=r[4] 			tel=r[5] 			dep=r[6] 			salary=r[7] 			value=(Id,name,sex,birthday,age,tel,dep,salary)			 			result=""" 			    编号:%s 			    姓名:%s 			    性别:%s 			    出生:%s 			    年龄:%s 			    电话:%s 			    部门:%s 			    薪水:%s					 				""" % value 			print "\t\t\t\033[31;38m    [.........  %s信息如下:    ......]\033[0m\n" % name 			print result 			while True: 		        	char=raw_input("\t\t\t\033[31;38m    [.........  删除%s(Y/y)?:......]\033[0m\n" % name) 				if char=='y' or char=='Y' or char=='': 					Delinstance.execute('delete from staff where id=%s',Id) 					print "\t\t\t\033[31;38m    [.........  %s删除成功:    ......]\033[0m\n" % Id 					break 				else: 					break 	def __Exit__(self): 		sys.exit() if __name__=='__main__':     try:         COMinstance=company() 	COMinstance.__Select__()     except KeyboardInterrupt:         pass
项目截图:(随便截了两个图,太麻烦了)
1.
[img]http://dl2.iteye.com/upload/attachment/0099/3746/5b2ecabe-f5cb-32c7-820f-a21d02547881.png[/img]
2.
[img]http://dl2.iteye.com/upload/attachment/0099/3748/11c2be9f-ea3d-366b-9199-ac7917a10da4.png[/img]
你可能感兴趣的文章
kermit的安装和配置
查看>>
vim 配置
查看>>
openocd zylin
查看>>
进程创建时文件系统处理
查看>>
内核线程创建
查看>>
linux中cat命令使用详解
查看>>
java中的异常机制
查看>>
商务智能-基本方法-数据钻取
查看>>
C++程序员技术需求规划(发展方向)
查看>>
JNI
查看>>
(转载)linux命令之十八locate 命令
查看>>
Linux发行光盘(红旗 5.0 SP2发行版,已不使用仅参考)
查看>>
linux下如何将文件打包、压缩并分割成制定大小
查看>>
CentOS6.5升级内核到3.10.28
查看>>
linux内核补丁安装和编译安装
查看>>
java.lang.IllegalArgumentException: FacesContext must not be null 错误分析及解决
查看>>
Spring框架事务管理之四:Spring编程式事务
查看>>
JOSSO入门指南及其与WildFly AS 10的集成
查看>>
为WildFly AS 10中的Liferay Portal 6.2配置JOSSO Agent
查看>>
Spring ORM与Hibernate的集成开发详解
查看>>