admin 管理员组文章数量: 1086866
python名片系统代码练习并存储到数据库中
我们首先要了解要干什么,咱要实现以下界面,进行增删改查,能够输入查询,并且将数据存储到数数据库中,和文件中。
主页面代码如下:
#调用增删改查函数import 名片项目.dyhs as dy
#调用存储文件函数
import 名片项目.xmfz1 as dx
dx.read_f()
while True:dy.xscd()aa =input ("请选择希望执行的操作")print("请选择您的操作[%s]"%aa)#1,2,3针对名片的操作if aa in ['1','2','3']:if aa == '1':dy.xzhs()elif aa == '2':sql = 'select * from xmb'list =dy.selectData(sql)print(list)elif aa =='3':dy.selectA()elif aa == '0':print('欢迎再次使用【名片管理系统】')dx.write_f(dy.card_list)break
实现增删改查函数:
import pymysql.cursors
card_list = [] #记录所有的名片字典
#显示菜单def xscd():print("*"*70)print('1.创建名片')print("2.显示全部")print("3.显示所有名片")print("0.退出")print('*'*70)def xzhs():#新增名片#1.提示用户输入名片的详细信息name_str = input('请输入姓名:')phon_str = input('请输入电话:')qq_str = int(input('请输入QQ:'))email_str = input('请输入邮箱:')#2.使用用户输入的信息建立一个名片字典card_dict = {"name":name_str,'phon':phon_str,'qq':qq_str,'email':email_str}#3.将名片字典添加到列表中# card_list.append(card_dict)#将名片字典添加到数据库中sql = "insert into xmb(name,phon,qq,email) values('%s','%s',%d,'%s')"%(name_str,phon_str,qq_str,email_str)insertData(sql)print('插入成功')#4.提示用户添加成功print('添加%s 的名片成功!'%name_str)print("_"*70)def show_all():print("*" * 70)#显示所有名片#判断是否存在名片记录,如果没有,提示用户并且返回if len(card_list) == 0:print('【当前没有任何的名片记录,请使用新增功能添加名片】')#return 可以返回一个函数的执行结果#下方的代码不会被执行#如果 return 后面没有任何的内容,表示会返回到调用函数的位置#并且不反悔任何的结果return#打印表头for name in ['姓名','电话','QQ','邮箱']:print(name,end='\t\t\t')print("")print('_'*70)#遍历名片列表依次输出字典信息for card_dict in card_list:print('%s\t\t\t%s\t\t\t%s\t\t\t%s\t\t\t'%(card_dict['name'],card_dict['phon'],card_dict['qq'],card_dict['email']))#显示所有
def sho():print('-'*70)list_dic = selectA()for i in list_dic:print("姓名:%s\t\t 电话:%s\t\t qq:%s\t\t 电话%s\t\t"% (i['name'], i['phon'], i['qq'], i['email']))#查询所有的
def selectA():sql = "select name,phon ,qq,email from xmb order by id asc"list =selectData(sql)list_dic = tupeleToDic(list)return list_dicdef tupeleToDic(list):new_list = []for tuple in list:new_list.append({"id":tuple[0],"name": tuple[1],"emil": tuple[2],"tel": tuple[3],})return new_listdef ssmp():"""查询名片"""print("_" * 70)#1.提示用户输入要搜索的姓名find_name = input('请输入要搜索的姓名:')#2.遍历列表。查询要搜索的姓名,如果没有找到,需要提示用户for card_dict in card_list:if card_dict['name'] == find_name:print('姓名\t\t电话\t\tQQ\t\t邮箱')print("_" * 70)print('%s\t\t%s\t\t%s\t\t%s\t\t' % (card_dict['name'],card_dict['phon'],card_dict['qq'],card_dict['emall']))#删除修改deal_card(card_dict)breakelse:print('抱歉没有找到 %s '%find_name)#封装一个函数专门修改和操作
def deal_card(find_dict): #指定一个形参,表示已经找到的字典"""处理查找到的名片:param find_dict: 查找到的名片"""print(find_dict)a_str = input('请选择要执行的操作 ''【1】.修改 【2】.删除 0.返回上级:')if a_str == '1':#把传递函数的字典中每个键值对的值进行替换find_dict['name'] = input_card_info(find_dict['name'],'姓名:')find_dict['phon'] = input_card_info(find_dict['phon'],'电话:')find_dict['qq'] = input_card_info(find_dict['qq'],'QQ:')find_dict['emall'] = input_card_info(find_dict['emall'],'邮箱:')print('修改名片')elif a_str =='2':card_list.remove(find_dict)print('删除成功')def input_card_info(dict_value,tip_message):"""输入名片信息:param dict_value: 字典中原有的值:param tip_message: 输入的提示文字:return:如果用户输入了内容,就返回内容,否则返回字典中原有的值"""#1.提示用户输入内容#2.针对用户的输入进行判断,如果用户输入了内容,直接返回结果#3.如果用户没有输入内容,返回‘字典中原有的值result_str = input(tip_message)if len(result_str)>0:return result_strelse:return dict_value#插入数据
def insertData(sql):conn = getConnect()#获取连接cursor = conn.cursor() #创建游标(新建查询会话),通过游标执行sql语句cursor.execute(sql)#(5)将sql语句放入游标中,准备执行conn.commit()#提交,真正的执行closeConnect(cursor,conn)#关闭count = cursor.rowcountif count>0:return Trueelse:return False#链接数据库
def getConnect():conn = pymysql.connect(host='localhost',user='root',password='123',database='xmmysql',charset='utf8')return conn#关闭连接
def closeConnect(cursor,conn):if cursor:cursor.close()if conn:conn.close()#查询数据
def selectData(sql):conn = getConnect()#获取链接cursor = conn.cursor()#创建游标(新建查询会话),通过游标执行sql语句cursor.execute(sql)#将sql语句放入游标中,准备执行closeConnect(cursor,conn)#关闭return cursor.fetchall() #结果是一个元组,元组中元素又是元组
存储函数:
import 名片项目.dyhs as dy#读文件def read_f():global card_listtry:f = open('ccwj.txt',mode='r',encoding='utf8')card_list = eval(f.read(card_list))f.close()except:pass#写文件
def write_f(a):f = open('ccwj.txt','w',encoding='utf8')f.write(str(a))f.write('\t')
本文标签: python名片系统代码练习并存储到数据库中
版权声明:本文标题:python名片系统代码练习并存储到数据库中 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1687945983a160520.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论