2.python学习笔记:python操作mysql数据库

绝地灬酷狼 2022-08-17 14:25 205阅读 0赞

python操作mysql数据库


1.python操作mysql数据库基础

对于python操作mysql数据库,我们认为其实是模拟dba的手工操作,不仅丰富了mysql的管理,而且使数据库的管理更加高效。

首先我们要开启数据库:
这里写图片描述

编写连接mysql 数据库的模块

  1. //connect_mysql.py
  2. #!/usr/bin/env python
  3. #-*-coding:utf-8-*-
  4. #-*-coding:gbk-*-
  5. from getopt import *
  6. import MySQLdb
  7. import sys
  8. import os
  9. #set short and long options list
  10. s_options="h:p:u:p:"
  11. l_options=['host=', 'port=', 'user=', 'passwd=']
  12. # set enum
  13. HOST, PORT, USER, PASSWD = range(4)
  14. VALUE=1
  15. """ function: connect to mysql database """
  16. def connect_mysql(hostname, port, user, password):
  17. try:
  18. connect = MySQLdb.connect(host=hostname, port=int(port), user=user,
  19. passwd=password)
  20. except MySQLdb.Error, error:
  21. try:
  22. sqlError = 'Error %d:%s' % (error.args[0], error.args[1])
  23. except IndexError:
  24. print "MySQL Error:%s" % str(error)
  25. return connect;
  26. if __name__ == '__main__':
  27. options,args = getopt(sys.argv[1:], s_options, l_options)
  28. connect = connect_mysql(hostname = options[HOST][VALUE],
  29. port = options[PORT][VALUE],
  30. user = options[USER][VALUE],
  31. password = options[PASSWD][VALUE])
  32. #get curs object
  33. cursobj = connect.cursor()
  34. #create database
  35. cursobj.execute("create database if not exists python_test charset utf8;")
  36. #create table
  37. cursobj.execute("create table if not exists python_test.user(userid int not null, user_name char(20) not null, password char(20) not null, primary key(userid))engine=innodb default charset=utf8;")
  38. #insert to table
  39. insert_user = "insert into python_test.user value(%s, %s, password(%s))"
  40. cursobj.execute(insert_user, (int(1), 'zhangchi', 'redhat'));
  41. cursobj.execute(insert_user, (int(2), 'haha', 'test1'));
  42. cursobj.execute(insert_user, (int(3), 'hehe', 'test2'));
  43. cursobj.execute(insert_user, (int(4), 'exam', 'world'));
  44. cursobj.execute(insert_user, (int(5), 'boy', 'girl'));
  45. #close cursor
  46. cursobj.close()
  47. #put the business
  48. connect.commit()
  49. #close mysql connect
  50. connect.close()

需要注意以下几点:

1.要想使用python连接数据库,我们需要导入MySQLdb模块,直接添加即可(前一个章节学习了如何安装该模块)。
2.通过MySQLdb.connect连接数据库,该函数需要的参数包括:
host、port、user、passwd
因为数据库的连接有可能会失败(访问被拒绝,访问远程数据库网络不通等情况),所以我们在这里采用包裹函数(第一次是在C语言中接触到)进行封装。
3.在main函数中我们通过命令行传递参数的方式传递了上述的四个参数,确立了数据库操作的游标:

  1. options,args = getopt(sys.argv[1:], s_options, l_options)
  2. connect = connect_mysql(hostname = options[HOST][VALUE],
  3. port = options[PORT][VALUE],
  4. user = options[USER][VALUE],
  5. password = options[PASSWD][VALUE])
  6. #get curs object
  7. cursobj = connect.cursor()

4.当获取了游标之后,我们就可以开始对数据库进行操作,在上述的例子中创建了名为python_test的数据库,以及名为user的数据表(其在python_test数据库中)。并且向该数据表中插入了多条数据。


2.需要改进的地方

1.如果你编写了不少示例可以发现,python对数据库的操作经常会出现异常、错误或者警告,我们需要对这些异常进行处理。

2.当然命令行的界面确实比较粗糙,如果能够采用图形的界面对数据库进行操作是最好不过的了

3.手工的进行添加效率太低,如果能够通过文件的导入则会更好。


小结
在后续的章节中,我们将要继续学习python的相关操作。希望能够继续的完善该功能,敬请期待。

发表评论

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

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

相关阅读