Python连接数据库的类
文章目录
- 概述
- python连接MySQL
- python连接PostgreSQL
概述
一般来说,在使用python连接数据库的时候,喜欢先定义一个类,方便后续的使用
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
可以比喻为一个Word的模板,每次创建一个新的Word文件时,可以使用这个模板,对于经常使用的场景,非常方便
连接数据库执行命令然后返回结果最后再断开连接,在写脚本时有时会经常做到,所以定义一个类
python连接MySQL
连接MySQL使用的包是pymysql
class cnMySQL:def __init__(self):self._dbhost = '172..16.56.2'self._dbuser = 'dba'self._dbpassword = 'dba1'self._dbname = 'test'self._dbcharset = 'utf8'self._dbport = int(3306)self._conn = self.connectMySQL()if (self._conn):self._cursor = self._conn.cursor(cursor=pymysql.cursors.DictCursor)def connectMySQL(self):try:conn = pymysql.connect(host=self._dbhost,user=self._dbuser,passwd=self._dbpassword,db=self._dbname,port=self._dbport,cursorclass=pymysql.cursors.DictCursor,charset=self._dbcharset)except Exception as e:raise#print("数据库连接出错")conn = Falsereturn conndef close(self):if (self._conn):try:if (type(self._cursor) == 'object'):self._conn.close()if (type(self._conn) == 'object'):self._conn.close()except Exception:print("关闭数据库连接异常")def ExecQuery(self,sql,*args):"""执行查询语句"""res = ''if (self._conn):try:self._cursor.execute(sql,args)res = self._cursor.fetchall()except Exception:res = Falseprint("查询异常")self.close()return res
使用方法:
先调用: conn = cnMySQL()
执行sql示例:test_sql = conn.ExecQuery(“select * from test where id = %s;”,canshu)
返回的数据时一个包含dict 的list
python连接PostgreSQL
连接PG使用的包是 psycopg2
class PGINFO:def __init__(self,host, user, pwd, db, port):self.host = hostself.user = userself.pwd = pwdself.db = dbself.port = portdef __GetConnect(self):"""得到连接信息返回: conn.cursor()"""if not self.db:raise(NameError, "没有设置数据库信息")self.conn = psycopg2.connect(database=self.db, user=self.user, password=self.pwd, host=self.host, port=self.port)cur = self.conn.cursor()if not cur:raise (NameError, "连接数据库失败")else:return curdef ExecQuery(self, sql):"""执行查询语句"""if sql == 'close':self.conn.close()else:cur = self.__GetConnect()cur.execute(sql)# resList = cur.fetchall()return cur
先调用,这里调用是使用参数文件的
pg = PGINFO(host=host_cus, user=user_cus, pwd=pwd_cus, db=db_cus, port=port_cus)
执行命令,抓取返回结果
cur = pg.ExecQuery("show data_directory;")pgdata = cur.fetchone()
Python连接数据库的类相关推荐
- 计算思维与数据科学 K-Means聚类模型信用卡用户风险评估 python连接数据库来处理数据
实验目的 1.处理信用卡数据异常值 1)读取信用卡数据: 2)丢弃逾期.呆账.强制停卡.退票.拒往记录为1.瑕疵户为2的记录: 3)丢弃呆账.强制停卡.退票为1.拒往记录为2的记录: 4)丢弃频率为5 ...
- MySQL 数据库(Python 连接数据库)
Mysql 引擎 外键 表之间的关联 Python 连接数据库 Python 中类的实现 引擎 查看引擎 show engines 可以了解到默认引擎为 MyISAM,此引擎不支持外键 修改默认引擎 ...
- Python中自定义类如果重写了__repr__方法为什么会影响到str的输出?
这是因为Python3中,str的输出是调用类的实例方法__str__来输出,如果__str__方法没有重写,则自动继承object类的__str__方法,而object类的__str__方法是调用_ ...
- python如何定义类_Python 面向对象
Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过 ...
- Python中的类、模块和包究竟是什么?
Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...
- 刻意练习:Python基础 -- Task10. 类与对象
背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...
- Python模块与类
2019独角兽企业重金招聘Python工程师标准>>> 类 类的定义,继承 类中的属性,类属性和实例属性的区别及访问方式 变量名以"_"或"__&quo ...
- Python之面向对象类和对象
Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object):"""类里定义一类事物共同的技能.可以是变量,也可是函数.& ...
- python里的类与一切事物都是对象
对于python,一切事物都是对象,对象基于类创建 列如 name='csdcs' li=[1,3,43] 上面两个都是对象,因为它们都是python中的 类里面存着许多的功能,功能的集合, ...
最新文章
- java菱形有几种状态_java程序,打出一个菱形,有什么规律吗
- 从头开发一个BurpSuite数据收集插件
- 科技论文新在哪里?-如何写好科技论文之我见(三)
- php要输出为空值怎么写,thinkphp3.0基础模板引擎变量为空时输出默认值
- RMI强制Full GC每小时运行一次
- css 竖行进度图_前端学习--汇集了大量 CSS 的使用和学习的示例代码
- java学习(118):vector类
- 微信接口开发-初级体验
- 人生苦短我要学python壁纸_人生苦短我学Python——环境安装
- JavaWeb开发之网站实现文件上传功能
- 案例应用|如何借助SPC软件实现汽车零配件品质管理
- c语言程序设计杨明莉刘磊答案,清华大学出版社-图书详情-《C/C++程序设计基础与实践教程(第2版)》...
- java apache类库_java-类库-Apache Commons补充
- 来!带你认识几种最流行的Python编辑器/IDEs
- 程序的循环结构(for循环)
- InfluxDB使用教程:数据库管理工具InfluxDBStudio
- DAPM之四:dapm机制深入分析(下)
- 少儿编程课程和乐高机器人有什么不同
- [QTV] 如何在 AWS F1 实例中使用 Vivado IPI
- Object.defineProperty与proxy进行对比