欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  1.要求
 
  数据库存储通讯录,要求按姓名/电话号码查询,查询条件只有一个输入入口,自动识别输入的是姓名还是号码,允许模糊查询。
 
  2.实现功能
 
  可通过输入指令进行操作。
 
  (1)首先输入“add”,可以对通讯录进行添加联系人信息。
 
  sql1='insertintoTA(ID,NAME,AGE,ADDRESS,TELENUMBER)'
 
  sql1+='values("%d","%s","%d","%s","%s");'%(ID,name,age,address,telenumber)
 
  conn.execute(sql1)
 
  conn.commit()#提交,否则无法保存
 
  (2)输入“delete”,可以删除指定的联系人信息。
 
  输入姓名删除:
 
  cursor=c.execute("SELECTnamefromTAwherename='%s';"%i)
 
  输入电话号码删除:
 
  cursor=c.execute("SELECTnamefromTAwheretelenumber='%s';"%i)
 
  (3)输入“search”,可以输入联系人或者电话号码,查询联系人信息,这里实现了模糊查询以及精确查询。
 
  输入姓名查询:
 
  sql1="SELECTid,name,age,address,telenumberfromTAwheretelenumberlike'%"+i+"%'"
 
  cursor=c.execute(sql1)
 
  输入电话号码查询:
 
  sql1="SELECTid,name,age,address,telenumberfromTAwherenamelike'%"+i+"%'"
 
  cursor=c.execute(sql1)
 
  (4)输入“searchall”,查询全部联系人信息。
 
  cursor=c.execute("SELECTid,name,age,address,telenumberfromTA")
 
  3.数据库sqlite3
 
  Python自带一个轻量级的关系型数据库sqlite。这一数据库使用SQL语言。sqlite作为后端数据库,可以搭配Python建网站,或者制作有数据存储需求的工具。sqlLite还在其它领域有广泛的应用,比如HTML5和移动端。Python标准库中的sqlite3提供该数据库的接口。因此此次使用了sqlite3数据库存储通讯录的联系人信息。
 
  源码:
 
  importsqlite3
 
  importre
 
  #打开本地数据库用于存储用户信息
 
  conn=sqlite3.connect('mysql_telephone_book.db')
 
  c=conn.cursor()
 
  #在该数据库下创建表,创建表的这段代码在第一次执行后需要注释掉,否则再次执行程序会一直提示:该表已存在
 
  '''c.execute("CREATETABLETA
 
  (IDINTPRIMARYKEYNOTNULL,
 
  NAMETEXTNOTNULL,
 
  AGEINTNOTNULL,
 
  ADDRESSCHAR(50),
 
  TELENUMBERTEXT);")'''
 
  conn.commit()#提交当前的事务
 
  #增加用户信息
 
  definsert():
 
  globalconn
 
  c=conn.cursor()
 
  ID=int(input("请输入id号:"))
 
  name=input("请输入姓名:")
 
  age=int(input("请输入年龄:"))
 
  address=input("请输入地址:")
 
  telenumber=input("请输入电话号码:")
 
  sql1='insertintoTA(ID,NAME,AGE,ADDRESS,TELENUMBER)'
 
  sql1+='values("%d","%s","%d","%s","%s");'%(ID,name,age,address,telenumber)
 
  conn.execute(sql1)
 
  conn.commit()#提交,否则无法保存
 
  print("提交成功!!")
 
  #删除用户信息
 
  defdelete():
 
  globalconn
 
  c=conn.cursor()
 
  i=input("请输入所要删除的联系人姓名或电话号码:")
 
  iflen(i)<11:
 
  cursor=c.execute("SELECTnamefromTAwherename='%s';"%i)
 
  forrowincursor:
 
  ifi==row[0]:
 
  c.execute("DELETEfromTAwherename='%s';"%i)
 
  conn.commit()
 
  print("成功删除联系人信息!!")
 
  break
 
  else:
 
  print("该联系人不存在!!")
 
  else:
 
  cursor=c.execute("SELECTnamefromTAwheretelenumber='%s';"%i)
 
  forrowincursor:
 
  ifi==row[0]:
 
  c.execute("DELETEfromTAwheretelenumber='%s';"%i)
 
  conn.commit()
 
  print("成功删除联系人信息!!")
 
  break
 
  else:
 
  print("该电话号码错误!!")
 
  #查询用户信息
 
  defsearch():
 
  globalconn
 
  c=conn.cursor()
 
  i=input("请输入所要查询的联系人姓名或电话号码:")
 
  ifi.isnumeric():
 
  sql1="SELECTid,name,age,address,telenumberfromTAwheretelenumberlike'%"+i+"%'"
 
  cursor=c.execute(sql1)
 
  res=cursor.fetchall()
 
  iflen(res)!=0:
 
  forrowinres:
 
  print("id:{0}".format(row[0]))
 
  print("姓名:{0}".format(row[1]))
 
  print("年龄:{0}".format(row[2]))
 
  print("地址:{0}".format(row[3]))
 
  print("电话号码:{0}".format(row[4]))
 
  else:
 
  print("无此电话号码!!")
 
  else:
 
  sql1="SELECTid,name,age,address,telenumberfromTAwherenamelike'%"+i+"%'"
 
  cursor=c.execute(sql1)
 
  res=cursor.fetchall()
 
  iflen(res)==0:
 
  print("该联系人不存在!!")
 
  else:
 
  forrowinres:
 
  print("id:{0}".format(row[0]))
 
  print("姓名:{0}".format(row[1]))
 
  print("年龄:{0}".format(row[2]))
 
  print("地址:{0}".format(row[3]))
 
  print("电话号码:{0}".format(row[4]))
 
  #显示所有用户信息
 
  defshowall():
 
  globalconn
 
  c=conn.cursor()
 
  cursor=c.execute("SELECTid,name,age,address,telenumberfromTA")
 
  forrowincursor:
 
  print("id:{0}".format(row[0]))
 
  print("姓名:{0}".format(row[1]))
 
  print("年龄:{0}".format(row[2]))
 
  print("地址:{0}".format(row[3]))
 
  print("电话号码:{0}".format(row[4]))
 
  print("指令如下:\n1.输入\"add\"为通讯录添加联系人信息\n2.输入\"delete\"删除通讯录里的指定联系人信息\n3.输入\"searchall\"查询通讯录里的所有用户\n4.输入\"search\"根据姓名或手机号码查找信息")
 
  while1:
 
  temp=input("请输入指令:")
 
  iftemp=="add":
 
  insert()
 
  print("添加成功!")
 
  temp1=input("是否继续操作通讯录?(yorn)")
 
  iftemp1=="n":
 
  print("成功退出!!")
 
  break
 
  else:
 
  continue
 
  eliftemp=="delete":
 
  delete()
 
  temp1=input("是否继续操作通讯录?(yorn)")
 
  iftemp1=="n":
 
  print("成功退出!!")
 
  break
 
  else:
 
  continue
 
  eliftemp=="searchall":
 
  showall()
 
  temp1=input("是否想继续操作通讯录?(yorn)")
 
  iftemp1=="n":
 
  print("成功退出!!")
 
  break
 
  else:
 
  continue
 
  eliftemp=="search":
 
  search()
 
  temp1=input("您是否想继续操作通讯录?(yorn)")
 
  iftemp1=="n":
 
  print("成功退出!!")
 
  break
 
  else:
 
  continue
 
  else:
 
  print("请输入正确指令!!")
 
  conn.close()#关闭数据库
 
  

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h54858.shtml