python工具之myql数据库操作
import pymysql
import config '''
1.0 简单封装
1.1 添加了insert_id属性,返回insert时返回的主键
1.2 添加了column属性,返回查询的column
1.3 添加一个insert
1.4 添加了一个insertList支持批量添加
''' class Db:
'''
数据库操作类
Attributes:
transactionFlag:是否开启事务
insert_id:insert时返回的主键
''' def __init__(self):
'''
insert_id:insert时返回的主键
'''
self.insert_id = 0
self.column = None def __init__(self, transactionFlag=False):
'''
transactionFlag:是否开启事务
insert_id:insert时返回的主键
'''
self.insert_id = 0
self.column = None
self.transFlag = transactionFlag
self.conn = pymysql.connect(host=config.host, port=config.port, user=config.user,
passwd=config.passwd, db=config.db, charset='utf8') def close():
'''
关闭连接
'''
self.conn.close() def execSql(self, sql, param=None):
'''
执行增删改语句,返回影响的行数
sql:要执行的sql
param:sql是的参数,默认值为None
'''
cursor = self.conn.cursor()
if param == None:
a = cursor.execute(sql)
else:
a = cursor.execute(sql, param)
self.insert_id = cursor.lastrowid
self.column = cursor.description
if self.transFlag == False:
self.commit()
return a def query(self, sql, param=None):
'''
执行查询语句
sql:要执行的sql
param:sql是的参数,默认值为None
'''
cursor = self.conn.cursor(pymysql.cursors.DictCursor)
if param == None:
cursor.execute(sql)
else:
cursor.execute(sql, param)
ret = cursor.fetchall()
self.column = cursor.description
cursor.close()
return ret def queryOne(self, sql, param=None):
'''
执行查询语句
sql:要执行的sql
param:sql是的参数,默认值为None
'''
cursor = self.conn.cursor(pymysql.cursors.DictCursor)
if param == None:
cursor.execute(sql)
else:
cursor.execute(sql, param)
ret = cursor.fetchone()
cursor.close()
return ret def insert(self, table, keyvalue):
'''
以键值对的方式添加数据,简化insert
'''
keylist = []
valuelist = []
for key, value in keyvalue.items():
keylist.append(key)
valuelist.append("'%s'" % value)
sql = "insert into %s(%s) values(%s)" % (
table, ','.join(keylist), ",".join(valuelist))
return self.execSql(sql) def insertList(self, table, keyvalueList):
'''
以键值对的方式添加数据,简化insert
'''
keylist = []
first = keyvalueList[0]
for key, value in first.items():
keylist.append(key)
sql = "insert into %s(%s) values" % (
table, ','.join(keylist))
valuelist = []
for kv in keyvalueList:
vlist = []
for k in keylist:
vlist.append("'%s'" % kv[k])
valuelist.append("(" + ','.join(vlist) + ")")
sql = sql + ",".join(valuelist)
return self.execSql(sql) def commit(self):
self.conn.commit() def rollback(self):
self.conn.rollback()
python工具之myql数据库操作的更多相关文章
- Python数据存储 — MySQL数据库操作
本地安装MySQL 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库. 安装参考:https://mp.csdn.net/postedit/8 ...
- Java常用工具类之数据库操作辅助类DBUtil.java
package com.qushida.util; import java.beans.BeanInfo; import java.beans.Introspector; import java.be ...
- python中的MySQL数据库操作 连接 插入 查询 更新 操作
MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...
- R和python连接SQL sever 数据库操作
在R的使用中,为了方便提取数据, 我们经常要进行数据库进行操作,接下来我们尝试使用R进行连接数据. 这里我们使用R中的RODBC进行操作, 首先,我们需要先配置ODBC资源管理器 通过任务管理器或者w ...
- python 使用sqlalchemy进行数据库操作
sqlalchemy是python下一个著名的数据库orm库,可以方便地进行数据表创建.数据增删改查等操作 最详细的教程,见官方:https://docs.sqlalchemy.org 这里列举一些常 ...
- python sqlalchemy 进行 mysql 数据库操作
1. 进行mysql数据库的创建,如果已经存在,就相当于进行数据库的连接操作 from sqlalchemy import create_engine from sqlalchemy.ext.decl ...
- Python实战之MySQL数据库操作
1. 要想使Python可以操作MySQL数据库,首先需要安装MySQL-python包,在CentOS上可以使用一下命令来安装 $ sudo yum install MySQL-python 2. ...
- python 包之 redis 数据库操作教程
一.安装 redis 是一个 Key-Value 数据库 Value 支持 string(字符串),list(列表),set(集合),zset(有序集合),hash(哈希类型)等类型 pip inst ...
- python - 接口自动化测试 - MysqlUtil - 数据库操作封装
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: mysql_util.py @ide: PyCharm C ...
随机推荐
- luogu2398 SUM GCD
题目大意:求sum i(1->n) (sum j(1->n) (gcd(i,j))). 对于每对(i,j)都来一次gcd很慢,但是我们知道,一个约数i在1~n范围内是n/i个数的约数.gc ...
- 使用delphi 开发多层应用(十六)使用XMLRPC 实现basic4android 远程调用RTC服务(讲述了RTC的特点,其底层通讯协议是自己封装SOCK 库,与kbmmw 的适合场合不完全一样)
RealThinClient (以下简称RTC) 也是一款delphi 多层开发的框架,由于其底层通讯协议是自己封装SOCK 库,抛弃了 大家诟病的indy,因此表现的非常稳定,效率也非常高, ...
- css3的渐变效果
1.css3 渐变的属性 例子: #grad { background: -webkit-linear-gradient(red, blue); /* Safari 5.1 - 6.0 */ back ...
- 一步一步学Silverlight 2系列(31):图形图像综合实例—实现水中倒影效果
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- Linux:NFS文件共享问题重新认识
之前也搭建过nfs,服务器之间目录里面的文件同享也一直正常.今天有现场反映,搭建nfs后,客户端文件在服务器端看不见. 在我之前的认识里,服务器端搭建好并启动nfs服务,客户端mount后,客户端.服 ...
- BDB c++例子,从源码编译到运行
第一步先下载源码,解压后 ./dist/configure --enable-cxx编译,然后make, make install --enable-cxx To build the Berkeley ...
- Eclipse慢慢学会的快捷键
Java编辑器 添加单个import Ctrl+Shift+M Java编辑器 组织多个import Ctrl+Shift+O Ctrl+M切换窗口的大小 Ctrl+D删除当前行 ---------- ...
- SPOJ:Free tour II (树分治+启发式合并)
After the success of 2nd anniversary (take a look at problem FTOUR for more details), this 3rd year, ...
- [Selenium] Actions.doubleClick
WebElement el = page.getTable_AssetMixesName().get(index); Actions action = new Actions(driver); act ...
- 【前端】CentOS 7 系列教程之四: 配置 git 服务器自动部署
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_4.html 安装pm2守护进程,备用 npm install -g pm2 创建/srv/www文件夹 ...