15
15
select conid as id, conname as name, contel as tel, conemail as email
16
16
from tb_contacter limit %s offset %s
17
17
"""
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
+ """
18
22
COUNT_CONTACTERS = """
19
23
select count(conid) as total from tb_contacter
20
24
"""
21
25
22
26
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
+
23
36
def input_contacter_info ():
24
37
name = input ('姓名: ' )
25
38
tel = input ('手机: ' )
@@ -39,10 +52,10 @@ def add_new_contacter(con):
39
52
print ('添加联系人失败!' )
40
53
41
54
42
- def delete_contacter (con , contacter_id ):
55
+ def delete_contacter (con , contacter ):
43
56
try :
44
57
with con .cursor () as cursor :
45
- if cursor .execute (DELETE_CONTACTER , (contacter_id , )) == 1 :
58
+ if cursor .execute (DELETE_CONTACTER , (contacter . id , )) == 1 :
46
59
print ('联系人已经删除!' )
47
60
except pymysql .MySQLError as err :
48
61
print (err )
@@ -51,31 +64,45 @@ def delete_contacter(con, contacter_id):
51
64
52
65
def edit_contacter_info (con , contacter ):
53
66
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
57
70
try :
58
71
with con .cursor () as cursor :
59
72
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 :
62
75
print ('联系人信息已经更新!' )
63
76
except pymysql .MySQLError as err :
64
77
print (err )
65
78
print ('更新联系人信息失败!' )
66
79
67
80
68
81
def 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 )
72
85
choice = input ('是否编辑联系人信息?(yes|no)' )
73
86
if choice == 'yes' :
74
87
edit_contacter_info (con , contacter )
75
88
else :
76
89
choice = input ('是否删除联系人信息?(yes|no)' )
77
90
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 ])
79
106
80
107
81
108
def find_all_contacters (con ):
@@ -87,31 +114,29 @@ def find_all_contacters(con):
87
114
while True :
88
115
cursor .execute (SELECT_CONTACTERS ,
89
116
(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 )
99
118
if page * size < total :
100
119
choice = input ('继续查看下一页?(yes|no)' )
101
120
if choice .lower () == 'yes' :
102
121
page += 1
103
122
else :
104
123
break
105
124
else :
106
- print ('没有下一页记录啦 !' )
125
+ print ('没有下一页记录 !' )
107
126
break
108
-
109
127
except pymysql .MySQLError as err :
110
128
print (err )
111
129
112
130
113
131
def 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 )
115
140
116
141
117
142
def find_contacters (con ):
@@ -129,7 +154,7 @@ def find_contacters(con):
129
154
130
155
131
156
def main ():
132
- con = pymysql .connect (host = '10.7.185.126 ' , port = 3306 ,
157
+ con = pymysql .connect (host = 'localhost ' , port = 3306 ,
133
158
user = 'root' , passwd = '123456' ,
134
159
db = 'contact' , charset = 'utf8' ,
135
160
autocommit = True ,
0 commit comments