一、安装(环境win7 、python2.7)
Python2.x 版本,使用MySQL-python:
安装包:MySQL-python-1.2.5.win32-py2.7.exe(双击安装)

下载地址:https://pypi.python.org/pypi/MySQL-python

二、代码
#coding:utf-8
#执行sql:execute、executmany(合理调用executmany,将多个insert放在一起,只执行一次IO,可以有效的提升数据库性能,但executmany不能一次数据量过大)
#cur.execute(ssql) #执行sql(一次仅能执行一条)
#conn.rollback() #回滚(commit前可做相应回滚,commit后无法再robllback)
#conn.commit() #提交到数据库执行(支持事务的存储引擎,需要commit,才真正写入数据库,执行多条sql后再一次调用 commit,可以适当提升性能)
#提取数据:fetchone、fetchall、fetchmany
# cur.fetchone()
#result=cur.fetchall() #结果集
#for row in result:
#print result[0][1]
#print "Nuber of rows returned: %d" %cur.rowcount #打印总条数,%d:输出整数格式
import MySQLdb
import MySQLdb.cursors
import time #################连接数据库
#连接数据库 ,MySQLdb.Connect(host ,user , passw , db)
class DbOperation():
def __init__(self,host,user,passwd,db):
self.db_error_msg=None
self.db_result=True
self.conn=''
self.host=host
self.user=user
self.passwd=passwd
self.db=db
try:
self.conn=MySQLdb.Connect(self.host,self.user,self.passwd,self.db)
#return self.conn
except MySQLdb.OperationalError as e:
self.db_error_msg=u'连接数据库' + self.conn.user + u'失败!'
self.db_result=False #################insert
#join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
def insert(self,table_name,data):
for key in data: #for循环遍历字典data的键值key
data[key]="'"+str(data[key])+"'" #data[key] :获取key相应元素的值
key=','.join(data.keys()) #字典的元素
value=','.join(data.values()) #字典的元素的值
isql="INSERT INTO " + table_name + " (" + key + ") VALUES (" + value + ")"
cur=self.conn.cursor()
cur.execute(isql)
self.conn.commit() #################执行sql操作
def exesql(self,sql):
self.db_result=True
cur=self.conn.cursor()
try:
cur.execute(sql)
print "Nuber of rows returned: %d" %cur.rowcount
except Exception,msg:
self.db_error_msg = u'执行sql语句出错:' + sql
self.db_result = False
return False #################关闭
def close(self):
self.conn.close() if __name__=='__main__':
db1=DbOperation('10.118.55.106','test01','123456','test')
sql="select * from ts_user"
table_name="ts_user"
data={'user_id':200000012,'username':100000,'type_code':1,'status':1} #字典
db1.insert(table_name,data)
db1.exesql(sql)
db1.close()

python mysqldb 模块学习的更多相关文章

  1. python - argparse 模块学习

    python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...

  2. Python MySQLdb模块连接操作mysql数据库实例_python

    mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...

  3. python paramiko模块学习分享

    python paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Sola ...

  4. Python logging 模块学习

    logging example Level When it's used Numeric value DEBUG Detailed information, typically of interest ...

  5. Python time模块学习

    Python time模块提供了一些用于管理时间和日期的C库函数,由于它绑定到底层C实现,因此一些细节会基于具体的平台. 一.壁挂钟时间 1.time() time模块的核心函数time(),它返回纪 ...

  6. python os模块学习

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的. 二.常用方法 1.os.name 输出字符串指示正在使用的平台.如果是wi ...

  7. Python MySQLdb 模块

    MySQLdb 是 Python2 连接 MySQL 的一个模块,常见用法如下: [root@localhost ~]$ yum install -y MySQL-python # 安装 MySQLd ...

  8. python logging模块学习(转)

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...

  9. python atexit模块学习

    python atexit模块 只定义了一个register模块用于注册程序退出时的回调函数,我们可以在这个函数中做一下资源清理的操作 注:如果程序是非正常crash,或者通过os._exit()退出 ...

随机推荐

  1. Node.js 配置Nginx

    1.修改nginx.conf upstream nodejs { server 127.0.0.1:3000; #server 127.0.0.1:3001; keepalive 64; } serv ...

  2. Supervisord常见用法和介绍

    Supervisord是用Python实现的一款非常实用的进程管理工具.supervisord会帮你把管理的应用程序转成daemon程序,而且可以方便的通过命令开启.关闭.重启等操作,而且它管理的进程 ...

  3. [工具04]java实现获取鼠标的坐标

    本篇博客其实没什么难度可言,在这里分享给大家,是因为有时候我们需要这个工具,java作为跨平台语言的优势在这个软件就可以体现出来,不需修改就可以在windows.mac.linux上使用这个软件. 这 ...

  4. linux中常用压缩与解压命令

    一. tar文件的解压 tar -xvf db.tar 二. zip文件的压缩与解压 压缩 zip -r dest_name.zip directory_to_compress 解压 unzip de ...

  5. 【vijos】1781 同余方程(拓展欧几里得)

    https://vijos.org/p/1781 学习了下拓欧.. 求exgcd时,因为 a*x1+b*y1=a*x2+b*y2=b*x2+(a-b*[a/b])*y2 然后移项得 a*x1+b*y1 ...

  6. Extjs5 app.js缓冲设置

    在6月2日Extjs5正式版公布后.粗略研究了一下,sencha推荐使用project编译来公布应用.开发过程中用sencha app watch命令就可以生成服务.每建立一个js类,就须要Ctrl+ ...

  7. 【问题】SUSE已经安装了libsodium,安装zeromq时出现下面的错误?

    1.[问题]SUSE已经安装了libsodium,安装zeromq时出现下面的错误? checking for libsodium... no configure: error: Package re ...

  8. poj 1659(havel算法)

    题目链接:http://poj.org/problem?id=1659 思路:  havel算法的应用: (1)对序列从大到小进行排序. (2)设最大的度数为 t ,把最大的度数置0,然后把最大度数后 ...

  9. iOS 开发之--打测试包的时候报错的解决方法

    在打测试包的时候,一直出现一个报错,解决方法如下: 方法一: 描述文件所在目录是:~/Library/MobileDevice/Provisioning\ Profiles/,可以直接前往文件夹,把所 ...

  10. 第七篇:两个经典的文件IO程序示例

    前言 本文分析两个经典的C++文件IO程序,提炼出其中文件IO的基本套路,留待日后查阅. 程序功能 程序一打印用户指定的所有文本文件,程序二向用户指定的所有文本文件中写入数据. 程序一代码及其注释 # ...