python笔记 - python操作数据库

墨蓝 2023-02-15 13:48 50阅读 0赞

python 选修课 学业所迫

1. python 连接mysql

  1. import pymysql
  2. conn = pymysql.connect(host='', port=, user='', password='', database='')
  3. curs = conn.cursor()
  4. def select():
  5. sql = "select * from "
  6. try:
  7. curs.execute(sql) # 执行sql语句
  8. res = curs.fetchall() # 获取查询的所有记录
  9. for row in res:
  10. print(row)
  11. except Exception as e:
  12. raise e
  13. def insert(sno1, sname1, sex1, birthday1, maths1, english1, os1):
  14. data = {
  15. 'sno': sno1,
  16. 'sname': sname1,
  17. 'sex': sex1,
  18. "birthday": birthday1,
  19. "maths": maths1,
  20. "english": english1,
  21. "os": os1,
  22. }
  23. table = 'tb_grade'
  24. keys = ', '.join(data.keys())
  25. values = ', '.join(['%s'] * len(data))
  26. sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
  27. try:
  28. curs.execute(sql, tuple(data.values()))
  29. print('Successful')
  30. conn.commit()
  31. except:
  32. print('Failed')
  33. conn.rollback()
  34. def delete(sno):
  35. sql = "DELETE FROM tb_grade WHERE sno = " + sno
  36. try:
  37. curs.execute(sql)
  38. conn.commit()
  39. except:
  40. conn.rollback() # 发生错误时回滚
  41. def updategrade(sno, maths, english, os):
  42. sql = "UPDATE tb_grade SET maths =" + maths + ",english=" + english + ",os=" + os + " WHERE sno=" + sno
  43. try:
  44. curs.execute(sql)
  45. conn.commit()
  46. except:
  47. conn.rollback() # 发生错误时回滚
  48. while 1:
  49. s = input("请输入需要操作的命令:\n"
  50. "1、修改数据\n"
  51. "2、查询数据\n"
  52. "3、插入数据\n"
  53. "4、删除数据\n")
  54. if s == "1":
  55. print("您选择修改数据")
  56. sno = input("请输入要修改的学生学号:")
  57. maths = input("请输入数学成绩:")
  58. english = input("请输入英语成绩:")
  59. os = input("请输入操作系统成绩:")
  60. updategrade(sno, maths, english, os)
  61. print("修改结果如下")
  62. select()
  63. elif s == "2":
  64. print("您选择查询数据")
  65. select()
  66. elif s == "3":
  67. print("您选择插入数据")
  68. sno = input("请输入的学生学号:")
  69. sname = input("请输入的学生姓名:")
  70. sex = input("请输入的学生性别:")
  71. birthday = input("请输入的学生生日:")
  72. maths = input("请输入数学成绩:")
  73. english = input("请输入英语成绩:")
  74. os = input("请输入操作系统成绩:")
  75. insert(sno, sname, sex, birthday, maths, english, os)
  76. print("插入结果如下")
  77. select()
  78. elif s == "4":
  79. sno = input("请输入的要删除的学生学号:")
  80. delete(sno)
  81. print("删除结果如下")
  82. select()
  83. else:
  84. conn.close()
  85. break

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. python mondodb

  1. import datetime
  2. import pymongo
  3. client = pymongo.MongoClient(host='localhost', port=27017)
  4. db = client.manager # 数据库
  5. emp = db.tb_emp # 表
  6. profession = db.tb_profession
  7. dept = db.tb_dept
  8. # tb_emp = {"eid": 2, "name": "lisi", "sex": "男",
  9. # "birthday": "2017-7-6", "intro": "i m lisi", "profession": 2, "dept": 2}
  10. # tb_profession = {
  11. # "id": 1,
  12. # "name": "计算机",
  13. # }
  14. # tb_profession = {
  15. # "id": 2,
  16. # "name": "软工",
  17. # }
  18. # tb_dept = {
  19. # "id": 1,
  20. # "name": "科学部",
  21. # }
  22. # tb_dept = {
  23. # "id": 2,
  24. # "name": "活动部",
  25. # }
  26. # one_insert = emp.insert_one(document=tb_emp)
  27. # one_insert = profession.insert_one(document=tb_profession)
  28. # one_insert = dept.insert_one(document=tb_dept)
  29. # one_result = emp.find_one({"eid": 1})
  30. # find = emp.find()
  31. # for result in find:
  32. # print(result)
  33. # print(one_result["sex"])
  34. # print(one_result)
  35. def selectAll():
  36. find = emp.find()
  37. for result in find:
  38. profession_find_one = profession.find_one({ "id": result["profession"]})
  39. dept_find_one = dept.find_one({ "id": result["dept"]})
  40. result["profession"] = profession_find_one["name"]
  41. result["dept"] = dept_find_one["name"]
  42. print(result)
  43. def selectone(name):
  44. one_result = emp.find_one({ "name": name})
  45. profession_find_one = profession.find_one({ "id": one_result["profession"]})
  46. dept_find_one = dept.find_one({ "id": one_result["dept"]})
  47. one_result["profession"] = profession_find_one["name"]
  48. one_result["dept"] = dept_find_one["name"]
  49. print(one_result)
  50. def delete(eid):
  51. // delete_one()也可
  52. remove = emp.remove({ "eid": eid})
  53. print(remove)
  54. def insert(eid, name, sex, birthday, intro, professionname, deptName):
  55. one_result_profession = profession.find_one({ "name": professionname})
  56. if one_result_profession is None:
  57. print("该专业不存在")
  58. return
  59. profession_id = one_result_profession["id"]
  60. one_result_dept = dept.find_one({ "name": deptName})
  61. if one_result_dept is None:
  62. print("该部门不存在")
  63. return
  64. dept_id = one_result_dept["id"]
  65. tb_emp = { "eid": eid, "name": name, "sex": sex,
  66. "birthday": birthday, "intro": intro, "profession": profession_id, "dept": dept_id}
  67. one_insert = emp.insert_one(document=tb_emp)
  68. print(one_insert, "插入成功!")
  69. def update(eid, updateemp):
  70. conditon = { "eid": eid}
  71. one = emp.find_one({ "eid": eid})
  72. print(one)
  73. for i in updateemp.keys():
  74. one[i] = updateemp[i]
  75. print(one)
  76. result = emp.update(conditon, one)
  77. print(result)

在这里插入图片描述
查找所有:
selectAll():

在这里插入图片描述
根据名字查找:
selectone(“zhansan”)

在这里插入图片描述
插入:
insert(3,“wangwu”,“女”,“2018-9-8”,“i m wangwu”,“计算机”,“科学部”)
selectAll()

在这里插入图片描述
在这里插入图片描述
update(1, {“name”: “lyq”})
selectAll()
在这里插入图片描述
在这里插入图片描述
insert(4,“待删除”,“女”,“2018-9-8”,“i m wangwu”,“计算机”,“科学部”)
selectAll()
delete(4)
selectAll()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. python处理异常(自定义异常)

外加一个

  1. class List_Queue:
  2. def __init__(self):
  3. self.items = []
  4. def enqueue(self, item):
  5. self.items.append(item)
  6. def dequeue(self):
  7. return self.items.pop(0)
  8. def empty(self):
  9. return self.size() == 0
  10. def size(self):
  11. return len(self.items)
  12. def remove(self, index):
  13. if self.size() == 0:
  14. raise List_Queue_Exception(index, "数组为空,无法移除")
  15. elif self.size() < index:
  16. raise List_Queue_Exception(index, "数组越界")
  17. count = 0
  18. for i in self.items:
  19. if count == index:
  20. return self.items.remove(self.items[index])
  21. count = count + 1
  22. return self.items
  23. class List_Queue_Exception(BaseException):
  24. def __init__(self, index, type):
  25. self.message = "当前index" + str(index) + ": " + type
  26. def getMessage(self):
  27. return self.message
  28. from homework4.List_queue import List_Queue_Exception, List_Queue
  29. if __name__ == '__main__':
  30. queue = List_Queue()
  31. try:
  32. queue.enqueue("123")
  33. queue.enqueue("122")
  34. queue.enqueue("121")
  35. print(queue.size())
  36. print(queue.items)
  37. queue.remove(1)
  38. print(queue.size())
  39. print(queue.items)
  40. except List_Queue_Exception as e:
  41. print(e.getMessage())
  42. 出现异常:
  43. queue.remove(5)

发表评论

表情:
评论列表 (有 0 条评论,50人围观)

还没有评论,来说两句吧...

相关阅读