python操作mysql数据库增删改查的dbutils实例
python操作mysql数据库增删改查的dbutils实例
# 数据库配置文件
# cat gconf.py #encoding=utf-8
import json
# json里面的字典不能用单引号,一定要用双引号
USER_FILE='users.json' # mysql数据库连接信息
MYSQL_HOST = '192.168.3.91'
MYSQL_PORT = 3306
MYSQL_USER = 'root'
MYSQL_PASSWORD = 'root'
MYSQL_DB = 'cmdb'
MYSQL_CHARSET = 'utf8' # 邮件发送的信息
SMTP_SERVER_HOST='smtp.exmail.qq.com'
SMTP_SERVER_PORT=25
SMTP_USER='jack@qq.com'
# 邮箱客户端专用密码
SMTP_PWD='pass' # 接收邮件
ALARM_RECIVE = ['admin@163.com'] # app验证信息
APP_KEY = 'adI23SaE926DSslieo'
APP_SECRET = 'adI23SaE926DSslieo'
# 操作数据库增删改查的dbutils.py代码
#encoding=utf-8 import MySQLdb import gconf # 主类
class MysqlConnection(object):
def __init__(self, host, port, user, passwd, db, charset='utf8'):
self.__host = host
self.__port = port
self.__user = user
self.__passwd = passwd
self.__db = db
self.__charset = charset
self.__conn = None
self.__cur = None
self.__connect()
# 连接数据库
def __connect(self):
try:
self.__conn = MySQLdb.connect(host = self.__host, port = self.__port,\
user = self.__user, passwd = self.__passwd,\
db = self.__db, charset = self.__charset) self.__cur = self.__conn.cursor()
except BaseException as e:
print e def close(self):
# 在关闭连接之前将内存中的文件写入磁盘
self.commit()
if self.__cur:
self.__cur.close()
self.__cur = None if self.__conn:
self.__conn.close()
self.__conn = None
# 设置提交
def commit(self):
if self.__conn:
self.__conn.commit() def execute(self, sql, args = ()):
_cnt = 0
if self.__cur:
self.__cur.execute(sql, args)
return _cnt def fetch(self, sql, args = ()):
_cnt = 0
rt_list = []
# _cnt = self.execute(sql, args)
if self.__cur: _cnt = self.__cur.execute(sql, args)
rt_list = self.__cur.fetchall()
return _cnt, rt_list @classmethod
def execute_sql(cls, sql, args=(), fetch = True):
count = 0
rt_list = []
conn = MysqlConnection(host = gconf.MYSQL_HOST, port = gconf.MYSQL_PORT,\
user = gconf.MYSQL_USER, passwd = gconf.MYSQL_PASSWORD, db = gconf.MYSQL_DB,\
charset = gconf.MYSQL_CHARSET)
print sql
if fetch:
count, rt_list = conn.fetch(sql, args)
else:
count = conn.execute(sql, args)
conn.close()
print rt_list
return count, rt_list def execute_fetch_sql(sql, args = (), fetch = True):
return execute_sql(sql, args, fetch) def execute_commit_sql(sql, args = (), fetch = False):
return execute_sql(sql, args, fetch) # 区别在于是查询还是修改,增加,删除操作,用fetch来标识
def execute_sql(sql, args = (), fetch = True):
cur = None
conn = None
count = 0
rt = ()
try:
conn = MySQLdb.connect(host = gconf.MYSQL_HOST, port = gconf.MYSQL_PORT,\
user = gconf.MYSQL_USER, passwd = gconf.MYSQL_PASSWORD, db = gconf.MYSQL_DB,\
charset = gconf.MYSQL_CHARSET) cur = conn.cursor()
print 'dbutils sql:%s, args = %s' % (sql, args)
count = cur.execute(sql, args)
# 如果是查询
if fetch:
rt = cur.fetchall()
# if args:
# rt = cur.fetchone()
# else:
# rt = cur.fetchall()
else:
conn.commit() except BaseException, e:
print e
finally:
if cur:
cur.close()
if conn:
conn.close()
print 'dbutils:%s,%s' %(count,rt)
return count,rt # 批量插入数据库
def batch_execute_sql(sql, rt_list = []):
cur = None
conn = None
count = 0
rt = () try:
conn = MySQLdb.connect(host = gconf.MYSQL_HOST, port = gconf.MYSQL_PORT,\
user = gconf.MYSQL_USER, passwd = gconf.MYSQL_PASSWORD, db = gconf.MYSQL_DB,\
charset = gconf.MYSQL_CHARSET) cur = conn.cursor()
print sql
# 循环执行插入语句,一次性全部提交
for line in rt_list:
count += cur.execute(sql, line)
conn.commit() except BaseException, e:
print e
finally:
if cur:
cur.close()
if conn:
conn.close() return count # 测试代码
if __name__ == '__main__':
# conn = MysqlConnection(host = gconf.MYSQL_HOST, port = gconf.MYSQL_PORT,\
# user = gconf.MYSQL_USER, passwd = gconf.MYSQL_PASSWORD, db = gconf.MYSQL_DB,\
# charset = gconf.MYSQL_CHARSET) # # conn.execute('insert into user(username) values(%s)', ('jack123',))
# cnt, rt_list = conn.fetch('select * from user')
# print cnt,rt_list
# conn.close()
count, rt_list = MysqlConnection.execute_sql('insert into user(username) values(%s)',('tomkeeper',))
print rt_list
python操作mysql数据库增删改查的dbutils实例的更多相关文章
- Asp.Net操作MySql数据库增删改查
Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git 1.安装MySQL数据库 ...
- Python实现mysql数据库增删改查
利用python操作mysql数据库用法简单,环境配置容易,本文将实现对库增.删.改.查的简易封装! 1. 环境配置 安装第三方包 ,导入模块 mysql.connector pip inst ...
- python2.7入门---操作mysql数据库增删改查
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口.Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: G ...
- Golang原生sql操作Mysql数据库增删改查
Golang要操作mysql数据库,首先需要在当期系统配置GOPATH,因为需要使用go get命令把驱动包下载到GOPATH下使用. 首先配置好你的GOPATH,执行以下命令,下载安装mysql驱动 ...
- python3操作mysql数据库增删改查
#!/usr/bin/python3 import pymysql import types db=pymysql.connect("localhost","root&q ...
- python操作mysql之增删改查
[insert] import MySQLdb conn = MySQLdb.connect(","08day5" ) cur = conn.cursor() #把数据放 ...
- MySQL数据库(增删改查语句)
MySQL数据库(增删改查语句)一.登录数据库:----> mysql -uroot -proot;(对应用户名和密码)二.SQL语句: 数据定义语言DDL 用来定义数据库.表.列,关 ...
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- jsp-2 简单的servlet连接mysql数据库 增删改查
连接mysql数据库的操作 有增删改查 用的包有 commons-lang3-3.5 mysql-connector-java-5.1.40-bin 但是实际上也就是 数据查询和数据处理两种 所以对数 ...
随机推荐
- Enum入门【原】
package com.bobo.www.cxf.impl; public enum Traffic { Red(1), Green(2), Yellow(3);//必须最前面 private int ...
- Django ORM操作的几个细节
1. __gte: 大于等于 Book.objects.filter(price__gt=100) # 查询price大于等于100的记录 2. __range: 顾头也顾尾,相当于between.. ...
- CSS脱离文档流&浮动
什么是文档流? 将窗体从上至下分成一行一行,并在每行中按从左至右依次排放元素,称为文档流,也称为普通流.这个应该不难理解,HTML中全部元素都是盒模型,盒模型占用一定的空间,依次排放在HTML中,形成 ...
- Android studio在新窗口中打开新项目
- Sql显示16进制
select cast(id as varbinary(4)) from tableTest
- 【小玩意】time-passing-by clock
就着youtube上的教程用html和js做了个小时钟. Code: clock.html //clock.html <!DOCTYPE html> <html> <he ...
- 【bzoj 2002】弹飞绵羊
Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置 ...
- MySQL之数据表(五)
1.数据表是数据库的重要内容,首先打开数据库. USE DATABASE; mysql> SHOW DATABASES;+--------------------+| Database |+-- ...
- nginx常用指令
./nginx #打开 nginx nginx -s reload|reopen|stop|quit #重新加载配置|重启|停止|退出 nginx nginx -t #测试配置是否有语法错误 ngin ...
- intellij idea无效的发型版本1.8解决方案
描述:intellj中启动项目报错无效的发行版本:8 解决方案一: file -> settings -> build,exception,deployment -> compile ...