我们首先要了解要干什么,咱要实现以下界面,进行增删改查,能够输入查询,并且将数据存储到数数据库中,和文件中。

主页面代码如下:

#调用增删改查函数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名片系统代码练习并存储到数据库中相关推荐

  1. python rsa加密之后byte类型存储到数据库中_python3 rsa加密

    遇到了跟你一样的问题. 此js封装的源码 如下.希望看到的大神解决了的话帮我一下. /* RSA, a suite of routines for performing RSA public-key ...

  2. python爬取携程网航班机票信息并存储到数据库中,2020年最新版本

    我们先看一下携程网的信息 从以上我们可以获取两个信息 1.我是从上海到成都的 2.7条航班信息 教你如何爬虫 我不教静态网页的爬虫,因为太简单了:我们直接上手携程网 我们到这个上述这个页面以后,我推荐 ...

  3. 如何在Python中将数字文件存储在数据库中

    Databases like MySQL and PostgreSQL are all ideal for storing tables with numeric and text data. How ...

  4. 将不同数据存储到数据库中_如何将数据存储在兔子洞中

    将不同数据存储到数据库中 Starting with databases and venturing into how the physical components of a computer st ...

  5. java rsa 存数据库_java – 如何创建RSA密钥对以便将其存储在数据库中?

    我正在尝试实现变异加密算法(理论上由我开发)并作为需求的一部分,我需要生成一个RSA密钥对并将其存储在数据库中,以便以后作为加密过程的一部分进行检索(仅用于加密会话密钥,以便可以使用加密的消息安全地发 ...

  6. 如何用DELPHI实现把WORD、EXCEL和图片等存储到数据库中

    如何用DELPHI实现把WORD.EXCEL和图片等存储到数据库中 用image字段保存这些文档.     var         word_stream:   TMemoryStream;      ...

  7. .NET Core采用的全新配置系统[7]: 将配置保存在数据库中

    我们在<聊聊默认支持的各种配置源>和<深入了解三种针对文件(JSON.XML与INI)的配置源>对配置模型中默认提供的各种ConfigurationSource进行了深入详尽的 ...

  8. 索引视图是否物理存储在数据库中以及使用索引视图的一些见解

    索引视图是否物理存储在数据库中以及使用索引视图的一些见解 前言 这个话题我本来是写在文章里没有写在随笔里的,不过赶脚不写在随笔里其他人就看不到了,因为小弟对视图的认识不深 希望写在随笔里让大家也讨论一 ...

  9. Kettle 使用资源库功能把ktr元数据统一存储到数据库中

    原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong ...

最新文章

  1. Hibernate 性能优化技巧
  2. java menuitem 乱码_MenuItem 顯示中文亂碼問題解決方案
  3. go ...打散切片
  4. 软件工程之快速原型模型
  5. NLP13-LDA引发的一系活动
  6. 002编程基础----makefile
  7. 怎样查看cudnn版本_ubuntu16.04+Geforce GTX1060安装CUDA和cuDNN
  8. 小货车DataAdapter对象 1129
  9. lua 区间比较_TI-Lua 系列教程2.4.1: 条件分支
  10. SQL Server如何保证可空字段中非空值唯一
  11. 复购分析实践中,Pandas 遇到了大难题
  12. 程序员的“三十而已”,你都30岁了,职业该如何规划?
  13. 基于单片机的智能家居环境监控系统的设计
  14. el-menu菜单 -- unique-opened 子菜单唯一性失效
  15. 中国阀门驱动装置行业运行状况与前景趋势研究报告2022-2028年
  16. 理解-1NF,2NF,3NF
  17. 转义字符表大全(转)
  18. mongodb 跟踪SQL语句及慢查询收集
  19. 当且仅当函数依赖a→b在r上成立_数据库第06章关系数据理习题课.ppt
  20. maven 命令参考_Maven完整参考

热门文章

  1. 解决 用 Nginx 处理 跨域问题
  2. 8583报文MAC验证实现过程
  3. Cygwin——简介
  4. 惠普暗影精灵8和惠普暗影精灵8 Plus 评测
  5. 外行朋友值得一读的5本经典数学书
  6. 针对Google注册不能收到手机验证码的解决方案
  7. DevCloud注册和登录
  8. Python和Java哪个好学?
  9. (Java实现) 洛谷 P1200 你的飞碟在这儿
  10. 人工神经网络基本构成有哪些,具有什么特征