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

python操作mysql数据库

1.python操作mysql数据库基础

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

首先我们要开启数据库:

0818b9ca8b590ca3270a3433284dd417.png

编写连接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的相关操作。希望能够继续的完善该功能,敬请期待。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值