1515select conid as id, conname as name, contel as tel, conemail as email
1616from tb_contacter limit %s offset %s
1717"""
18+ SELECT_CONTACTERS_BY_NAME = """
19+ select conid as id, conname as name, contel as tel, conemail as email
20+ from tb_contacter where conname like %s
21+ """
1822COUNT_CONTACTERS = """
1923select count(conid) as total from tb_contacter
2024"""
2125
2226
27+ class Contacter (object ):
28+
29+ def __init__ (self , id , name , tel , email ):
30+ self .id = id
31+ self .name = name
32+ self .tel = tel
33+ self .email = email
34+
35+
2336def input_contacter_info ():
2437 name = input ('姓名: ' )
2538 tel = input ('手机: ' )
@@ -39,10 +52,10 @@ def add_new_contacter(con):
3952 print ('添加联系人失败!' )
4053
4154
42- def delete_contacter (con , contacter_id ):
55+ def delete_contacter (con , contacter ):
4356 try :
4457 with con .cursor () as cursor :
45- if cursor .execute (DELETE_CONTACTER , (contacter_id , )) == 1 :
58+ if cursor .execute (DELETE_CONTACTER , (contacter . id , )) == 1 :
4659 print ('联系人已经删除!' )
4760 except pymysql .MySQLError as err :
4861 print (err )
@@ -51,31 +64,45 @@ def delete_contacter(con, contacter_id):
5164
5265def edit_contacter_info (con , contacter ):
5366 name , tel , email = input_contacter_info ()
54- contacter [ ' name' ] = name or contacter [ ' name' ]
55- contacter [ ' tel' ] = tel or contacter [ ' tel' ]
56- contacter [ ' email' ] = email or contacter [ ' email' ]
67+ contacter . name = name or contacter . name
68+ contacter . tel = tel or contacter . tel
69+ contacter . email = email or contacter . email
5770 try :
5871 with con .cursor () as cursor :
5972 if cursor .execute (UPDATE_CONTACTER ,
60- (contacter [ ' name' ] , contacter [ ' tel' ] ,
61- contacter [ ' email' ] , contacter [ 'id' ] )) == 1 :
73+ (contacter . name , contacter . tel ,
74+ contacter . email , contacter . id )) == 1 :
6275 print ('联系人信息已经更新!' )
6376 except pymysql .MySQLError as err :
6477 print (err )
6578 print ('更新联系人信息失败!' )
6679
6780
6881def show_contacter_detail (con , contacter ):
69- print ('姓名:' , contacter [ ' name' ] )
70- print ('手机号:' , contacter [ ' tel' ] )
71- print ('邮箱:' , contacter [ ' email' ] )
82+ print ('姓名:' , contacter . name )
83+ print ('手机号:' , contacter . tel )
84+ print ('邮箱:' , contacter . email )
7285 choice = input ('是否编辑联系人信息?(yes|no)' )
7386 if choice == 'yes' :
7487 edit_contacter_info (con , contacter )
7588 else :
7689 choice = input ('是否删除联系人信息?(yes|no)' )
7790 if choice == 'yes' :
78- delete_contacter (con , contacter ['id' ])
91+ delete_contacter (con , contacter )
92+
93+
94+ def show_search_result (con , cursor ):
95+ contacters_list = []
96+ for index , row in enumerate (cursor .fetchall ()):
97+ contacter = Contacter (** row )
98+ contacters_list .append (contacter )
99+ print ('[%d]: %s' % (index , contacter .name ))
100+ if len (contacters_list ) > 0 :
101+ choice = input ('是否查看联系人详情?(yes|no)' )
102+ if choice .lower () == 'yes' :
103+ index = int (input ('请输入编号: ' ))
104+ if 0 <= index < cursor .rowcount :
105+ show_contacter_detail (con , contacters_list [index ])
79106
80107
81108def find_all_contacters (con ):
@@ -87,31 +114,29 @@ def find_all_contacters(con):
87114 while True :
88115 cursor .execute (SELECT_CONTACTERS ,
89116 (size , (page - 1 ) * size ))
90- contacters_list = []
91- for index , row in enumerate (cursor .fetchall ()):
92- contacters_list .append (row )
93- print ('[%d]: %s' % (index , row ['name' ]))
94- choice = input ('是否查看联系人详情?(yes|no)' )
95- if choice .lower () == 'yes' :
96- index = int (input ('请输入编号: ' ))
97- if 0 <= index < cursor .rowcount :
98- show_contacter_detail (con , contacters_list [index ])
117+ show_search_result (con , cursor )
99118 if page * size < total :
100119 choice = input ('继续查看下一页?(yes|no)' )
101120 if choice .lower () == 'yes' :
102121 page += 1
103122 else :
104123 break
105124 else :
106- print ('没有下一页记录啦 !' )
125+ print ('没有下一页记录 !' )
107126 break
108-
109127 except pymysql .MySQLError as err :
110128 print (err )
111129
112130
113131def find_contacters_by_name (con ):
114- pass
132+ name = input ('联系人姓名: ' )
133+ try :
134+ with con .cursor () as cursor :
135+ cursor .execute (SELECT_CONTACTERS_BY_NAME ,
136+ ('%' + name + '%' , ))
137+ show_search_result (con , cursor )
138+ except pymysql .MySQLError as err :
139+ print (err )
115140
116141
117142def find_contacters (con ):
@@ -129,7 +154,7 @@ def find_contacters(con):
129154
130155
131156def main ():
132- con = pymysql .connect (host = '10.7.185.126 ' , port = 3306 ,
157+ con = pymysql .connect (host = 'localhost ' , port = 3306 ,
133158 user = 'root' , passwd = '123456' ,
134159 db = 'contact' , charset = 'utf8' ,
135160 autocommit = True ,
0 commit comments