diff --git a/Day36-40/code/contact/main.py b/Day36-40/code/contact/main.py index 20e67ecbbba2004afb6f05e61a9d563cdddc4ba3..4dda5eb79e5db1b294ebb1909e4ee1bf08fc19a5 100644 --- a/Day36-40/code/contact/main.py +++ b/Day36-40/code/contact/main.py @@ -15,11 +15,24 @@ SELECT_CONTACTERS = """ select conid as id, conname as name, contel as tel, conemail as email from tb_contacter limit %s offset %s """ +SELECT_CONTACTERS_BY_NAME = """ +select conid as id, conname as name, contel as tel, conemail as email +from tb_contacter where conname like %s +""" COUNT_CONTACTERS = """ select count(conid) as total from tb_contacter """ +class Contacter(object): + + def __init__(self, id, name, tel, email): + self.id = id + self.name = name + self.tel = tel + self.email = email + + def input_contacter_info(): name = input('姓名: ') tel = input('手机: ') @@ -39,10 +52,10 @@ def add_new_contacter(con): print('添加联系人失败!') -def delete_contacter(con, contacter_id): +def delete_contacter(con, contacter): try: with con.cursor() as cursor: - if cursor.execute(DELETE_CONTACTER, (contacter_id, )) == 1: + if cursor.execute(DELETE_CONTACTER, (contacter.id, )) == 1: print('联系人已经删除!') except pymysql.MySQLError as err: print(err) @@ -51,14 +64,14 @@ def delete_contacter(con, contacter_id): def edit_contacter_info(con, contacter): name, tel, email = input_contacter_info() - contacter['name'] = name or contacter['name'] - contacter['tel'] = tel or contacter['tel'] - contacter['email'] = email or contacter['email'] + contacter.name = name or contacter.name + contacter.tel = tel or contacter.tel + contacter.email = email or contacter.email try: with con.cursor() as cursor: if cursor.execute(UPDATE_CONTACTER, - (contacter['name'], contacter['tel'], - contacter['email'], contacter['id'])) == 1: + (contacter.name, contacter.tel, + contacter.email, contacter.id)) == 1: print('联系人信息已经更新!') except pymysql.MySQLError as err: print(err) @@ -66,16 +79,30 @@ def edit_contacter_info(con, contacter): def show_contacter_detail(con, contacter): - print('姓名:', contacter['name']) - print('手机号:', contacter['tel']) - print('邮箱:', contacter['email']) + print('姓名:', contacter.name) + print('手机号:', contacter.tel) + print('邮箱:', contacter.email) choice = input('是否编辑联系人信息?(yes|no)') if choice == 'yes': edit_contacter_info(con, contacter) else: choice = input('是否删除联系人信息?(yes|no)') if choice == 'yes': - delete_contacter(con, contacter['id']) + delete_contacter(con, contacter) + + +def show_search_result(con, cursor): + contacters_list = [] + for index, row in enumerate(cursor.fetchall()): + contacter = Contacter(**row) + contacters_list.append(contacter) + print('[%d]: %s' % (index, contacter.name)) + if len(contacters_list) > 0: + choice = input('是否查看联系人详情?(yes|no)') + if choice.lower() == 'yes': + index = int(input('请输入编号: ')) + if 0 <= index < cursor.rowcount: + show_contacter_detail(con, contacters_list[index]) def find_all_contacters(con): @@ -87,15 +114,7 @@ def find_all_contacters(con): while True: cursor.execute(SELECT_CONTACTERS, (size, (page - 1) * size)) - contacters_list = [] - for index, row in enumerate(cursor.fetchall()): - contacters_list.append(row) - print('[%d]: %s' % (index, row['name'])) - choice = input('是否查看联系人详情?(yes|no)') - if choice.lower() == 'yes': - index = int(input('请输入编号: ')) - if 0 <= index < cursor.rowcount: - show_contacter_detail(con, contacters_list[index]) + show_search_result(con, cursor) if page * size < total: choice = input('继续查看下一页?(yes|no)') if choice.lower() == 'yes': @@ -103,15 +122,21 @@ def find_all_contacters(con): else: break else: - print('没有下一页记录啦!') + print('没有下一页记录!') break - except pymysql.MySQLError as err: print(err) def find_contacters_by_name(con): - pass + name = input('联系人姓名: ') + try: + with con.cursor() as cursor: + cursor.execute(SELECT_CONTACTERS_BY_NAME, + ('%' + name + '%', )) + show_search_result(con, cursor) + except pymysql.MySQLError as err: + print(err) def find_contacters(con): @@ -129,7 +154,7 @@ def find_contacters(con): def main(): - con = pymysql.connect(host='10.7.185.126', port=3306, + con = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='contact', charset='utf8', autocommit=True, diff --git a/Day36-40/code/contact/test02.py b/Day36-40/code/contact/test02.py new file mode 100644 index 0000000000000000000000000000000000000000..368db21e90968055e982ac1cf91130b23a052dde --- /dev/null +++ b/Day36-40/code/contact/test02.py @@ -0,0 +1,32 @@ +class Student(object): + + def __init__(self, id, name, age, sex): + self.id = id + self.name = name + self.age = age + self.sex = sex + + def study(self, course_name): + print(f'{self.name}正在学习{course_name}.') + + def watch_av(self): + if self.age >= 18: + print(f'{self.name}正在观看岛国片.') + else: + print(f'{self.name}只能看《熊出没》.') + + +def main(): + dict1 = { + 'id': 1001, + 'name': '王大锤', + 'age': 15, + 'sex': True + } + stu = Student(**dict1) + stu.study('Python程序设计') + stu.watch_av() + + +if __name__ == '__main__': + main()