Python Mysql 实现人员信息系统

[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]
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值