`
唐美好
  • 浏览: 43844 次
  • 性别: Icon_minigender_1
  • 来自: 湖南永州
社区版块
存档分类
最新评论

Python Mysql 实现人员信息系统

阅读更多

项目心得:Python是们非常有意思的语言,之前在51cto看老男孩Python培训视频的时候看他们做的项目是采用文件存储数据和读取数据,而且界面排版我个人不是非常喜欢.我认为将数据存储在Mysql数据库中会更加完美。
项目内容:(1)Python 操作Mysql数据库的方法
          (2)Python 面向对象的编程
          (3)Python Import方法
          (4)Python 的While,Break,Continue,for if 语句结合使用
          (5)Python的列表,元组,字符串等等
大体掌握上述东西,此项目做起来就比较顺手.
同时有些方面可能没有考虑完美,也没有很多的注释,但是时间的问题,,以后会逐渐更改和完善
博客声明:本文为原创,如果转载请注明出处.iotos.iteye.com

1.Mysql部分:
staff表
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          

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.

2.

  • 大小: 209.2 KB
  • 大小: 192.3 KB
2
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics