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

python操作mysql数据库


1.python操作mysql数据库基础

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

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

编写连接mysql 数据库的模块

//connect_mysql.py
#!/usr/bin/env python

#-*-coding:utf-8-*-
#-*-coding:gbk-*-

from getopt import *
import MySQLdb
import sys
import os

#set short and long options list
s_options="h:p:u:p:"
l_options=['host=', 'port=', 'user=', 'passwd=']
# set enum
HOST, PORT, USER, PASSWD = range(4)
VALUE=1

"""
  function: connect to mysql database
"""
def connect_mysql(hostname, port, user, password):
    try:
        connect = MySQLdb.connect(host=hostname, port=int(port), user=user, 
                                  passwd=password) 
    except MySQLdb.Error, error:
        try:
            sqlError = 'Error %d:%s' % (error.args[0], error.args[1])   
        except IndexError:
            print "MySQL Error:%s" % str(error)      

    return connect;

if __name__ == '__main__':
    options,args = getopt(sys.argv[1:], s_options, l_options)
    connect = connect_mysql(hostname = options[HOST][VALUE],
                  port = options[PORT][VALUE],
                  user = options[USER][VALUE], 
                  password = options[PASSWD][VALUE])
    #get curs object
    cursobj = connect.cursor()    

    #create database
    cursobj.execute("create database if not exists python_test charset utf8;")

    #create table
    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;")   

    #insert to table
    insert_user = "insert into python_test.user value(%s, %s, password(%s))"
    cursobj.execute(insert_user, (int(1), 'zhangchi', 'redhat'));
    cursobj.execute(insert_user, (int(2), 'haha', 'test1'));
    cursobj.execute(insert_user, (int(3), 'hehe', 'test2'));
    cursobj.execute(insert_user, (int(4), 'exam', 'world'));
    cursobj.execute(insert_user, (int(5), 'boy', 'girl'));

    #close cursor
    cursobj.close()


    #put the business
    connect.commit()
    #close mysql connect
    connect.close()

需要注意以下几点:

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

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

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


2.需要改进的地方

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

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

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


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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值