本文共 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]