python的dbutil
目录机构如下:

dbutil代码如下:
#!/usr/bin/python
# -*- coding:utf-8 -*- import configparser
import pymysql class dbutil:
# dbsection为配置文件中的section
def __init__(self,dbsection):
self._conn=self.dbConn(dbsection)
if(self._conn):
self._cursor=self._conn.cursor()
def dbConn(self,dbsection):
#读取db.ini文件
cf = configparser.ConfigParser()
cf.read("../config/db.ini")
dbhost = cf.get(dbsection,"host")
dbport = cf.getint(dbsection,"port")
dbuser = cf.get(dbsection,"user")
dbpassword = cf.get(dbsection,"password")
dbname = cf.get(dbsection,"dbname")
dbcharset = cf.get(dbsection,"charset") #开始数据库连接
try:
conn = pymysql.Connect(host=dbhost,port=dbport,user=dbuser,passwd=dbpassword,db=dbname,charset=dbcharset)
except:
print("连接失败 host=%s,port=%d,user=%s,dbpassword=%s,db=%s"%(dbhost,dbport,dbuser,dbpassword,dbname))
conn=False
return conn # 获取查询结果集
def fetch_all(self, sql):
res = ''
if (self._conn):
try:
self._cursor.execute(sql)
res = self._cursor.fetchall()
except Exception as data:
res = False
print("query database exception, %s" % data)
return res # 执行更新语句
def update(self, sql):
flag = False
if (self._conn):
try:
self._cursor.execute(sql)
self._conn.commit()
flag = True
except Exception as data:
flag = False
print("update database exception, %s" % data)
return flag # 关闭数据库连接
def close(self):
if (self._conn):
# print(type(self._conn)=='object')
try:
# if (type(self._cursor) == 'object'):
self._cursor.close()
# if (type(self._conn) == 'object'):
self._conn.close()
except Exception as data:
print("close database exception, %s,%s,%s" % (data, type(self._cursor), type(self._conn))) if __name__=="__main__":
dbutil=dbutil("biz_mysql")
res=dbutil.fetch_all("select * from wm_people limit %d"%(2))
dbutil.close()
print(len(res))
for dd in res:
print(dd[0])
对应的db.ini如下
[biz_mysql]
host = 10.15.17.xxx
port = 3306
user = xxx
password = 123456
dbname = xxx
charset = utf8 [data_mysql]
host = 10.15.17.xxx
port = 3306
user = biz
password = 123456
dbname = xxx
charset = utf8
python的dbutil的更多相关文章
- python环境测试MySQLdb、DBUtil、sqlobject性能
python环境测试MySQLdb.DBUtil.sqlobject性能 首先介绍下MySQLdb.DBUtil.sqlobject: (1)MySQLdb 是用于Python连接Mysql数据库的接 ...
- python Cmd实例之网络爬虫应用
python Cmd实例之网络爬虫应用 标签(空格分隔): python Cmd 爬虫 废话少说,直接上代码 # encoding=utf-8 import os import multiproces ...
- java 调用 python 脚本
有时候在java项目里,需要执行Python脚本以下几种方式: 1.直接执行Python脚本代码 引用 org.python包 创建一个 python解释器,貌似这种方式不可以导入第三方库,模块... ...
- python学习 day15打卡 初识面向对象
本节主要内容: 1.面向对象和面向过程 2.面向对象如何编写 3.面向对象和面向过程的对比 4.面向对象的三大特征 一.面向对象和面向过程(重点理解) 1.面向过程:一切以事物的流程为核心.核心是&q ...
- python mysql模块
多次使用python操作mysql数据库,先与大家分享一下,关于如何使用python操作mysql数据库.mysql并不是python自带的模块,因此需要下载安装.(在windows平台下介绍该使用过 ...
- Python 单元测试 增强系统健壮性
问题背景交代 注意,JulyNovel只爬取免费小说,所有vip章节全部导航至起点网站,遵循robots协议,所有数据仅供学习用途,侵删 通过编写单元测试,提高JulyNovel系统可靠性 首先我们知 ...
- Python的scrapy之爬取顶点小说网的所有小说
闲来无事用Python的scrapy框架练练手,爬取顶点小说网的所有小说的详细信息. 看一下网页的构造: tr标签里面的 td 使我们所要爬取的信息 下面是我们要爬取的二级页面 小说的简介信息: 下面 ...
- python学习笔记:第15天 初识面向对象
目录 1. 面向对象和面向过程 2. 面向对象如何编写: 3. 面向对象的三大特征 封装 继承 多态 1. 面向对象和面向过程 面向对象和面向过程的理解: ⾯向过程: ⼀切以事物的流程为核⼼. 核⼼是 ...
- Python的scrapy之爬取boss直聘网站
在我们的项目中,单单分析一个51job网站的工作职位可能爬取结果不太理想,所以我又爬取了boss直聘网的工作,不过boss直聘的网站一次只能展示300个职位,所以我们一次也只能爬取300个职位. jo ...
随机推荐
- linux文本编辑器-VIM基本使用方法
vim [OPTION]... FILE... +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首vim + file 直接打开file,光标在最后一行 三种主要模式 ...
- C#数组删除元素
一.C#数组删除元素 在C#中,只能在动态数组ArrayList类中对数组执行删除元素的操作.因为动态数组是一个可以改变数组长度和元素个数的数据类型. 示例: using System;using S ...
- destoon 给超级管理员系统权限(管理员管理,日志管理等)
destoon 后台某些系统权限除了网站创始人之外其他超管事没有权限的,现需要给其他超级管理员添加普通管理员的权限. 1.首先 admin/global.func.php admin_check函 ...
- Java并发编程的艺术 记录(二)
volatile的应用 volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量.Java语言提供了volatil ...
- stm32L0工程建立(HAL+IAR,无cubemx)
https://files.cnblogs.com/files/CodeWorkerLiMing/STM32HAL%E5%BA%93%E5%AD%A6%E4%B9%A0%E2%80%94%E5%B7% ...
- scanf(),gets(),getchar()
scanf()与gets()区别: scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别.若想从键盘上输入字符串"hi hello",则应该使用gets() ...
- Tourists Gym - 101002I LCA——dfs+RMQ在线算法
LCA(Least Common Ancestors),即最近公共祖先,是指这样一个问题:在有根树中,找出某两个结点u和v最近的公共祖先(另一种说法,离树根最远的公共祖先). 知识需求:1)RMQ的S ...
- RSS列表
博客园 http://feed.cnblogs.com/blog/sitehome/rss
- jmeter switch controller
工作方式: Switch控制器通过给该控制器中的Value赋值,来指定运行哪个采样器.有两种赋值方式: 1.第一种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪 ...
- 金阳光Android自动化测试第一季
第一季:http://www.chuanke.com/v1983382-106000-218422.html 第一节:Android自动化预备课程基础(上) 1. 基于坐标点触屏:monkey ...