文章目录

  • 概述
  • 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连接数据库的类相关推荐

  1. 计算思维与数据科学 K-Means聚类模型信用卡用户风险评估 python连接数据库来处理数据

    实验目的 1.处理信用卡数据异常值 1)读取信用卡数据: 2)丢弃逾期.呆账.强制停卡.退票.拒往记录为1.瑕疵户为2的记录: 3)丢弃呆账.强制停卡.退票为1.拒往记录为2的记录: 4)丢弃频率为5 ...

  2. MySQL 数据库(Python 连接数据库)

    Mysql 引擎 外键 表之间的关联 Python 连接数据库 Python 中类的实现 引擎 查看引擎 show engines 可以了解到默认引擎为 MyISAM,此引擎不支持外键 修改默认引擎 ...

  3. Python中自定义类如果重写了__repr__方法为什么会影响到str的输出?

    这是因为Python3中,str的输出是调用类的实例方法__str__来输出,如果__str__方法没有重写,则自动继承object类的__str__方法,而object类的__str__方法是调用_ ...

  4. python如何定义类_Python 面向对象

    Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过 ...

  5. Python中的类、模块和包究竟是什么?

    Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...

  6. 刻意练习:Python基础 -- Task10. 类与对象

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  7. Python模块与类

    2019独角兽企业重金招聘Python工程师标准>>> 类 类的定义,继承 类中的属性,类属性和实例属性的区别及访问方式 变量名以"_"或"__&quo ...

  8. Python之面向对象类和对象

    Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object):"""类里定义一类事物共同的技能.可以是变量,也可是函数.& ...

  9. python里的类与一切事物都是对象

    对于python,一切事物都是对象,对象基于类创建 列如 name='csdcs' li=[1,3,43] 上面两个都是对象,因为它们都是python中的 类里面存着许多的功能,功能的集合,     ...

最新文章

  1. java菱形有几种状态_java程序,打出一个菱形,有什么规律吗
  2. 从头开发一个BurpSuite数据收集插件
  3. 科技论文新在哪里?-如何写好科技论文之我见(三)
  4. php要输出为空值怎么写,thinkphp3.0基础模板引擎变量为空时输出默认值
  5. RMI强制Full GC每小时运行一次
  6. css 竖行进度图_前端学习--汇集了大量 CSS 的使用和学习的示例代码
  7. java学习(118):vector类
  8. 微信接口开发-初级体验
  9. 人生苦短我要学python壁纸_人生苦短我学Python——环境安装
  10. JavaWeb开发之网站实现文件上传功能
  11. 案例应用|如何借助SPC软件实现汽车零配件品质管理
  12. c语言程序设计杨明莉刘磊答案,清华大学出版社-图书详情-《C/C++程序设计基础与实践教程(第2版)》...
  13. java apache类库_java-类库-Apache Commons补充
  14. 来!带你认识几种最流行的Python编辑器/IDEs
  15. 程序的循环结构(for循环)
  16. InfluxDB使用教程:数据库管理工具InfluxDBStudio
  17. DAPM之四:dapm机制深入分析(下)
  18. 少儿编程课程和乐高机器人有什么不同
  19. [QTV] 如何在 AWS F1 实例中使用 Vivado IPI
  20. Object.defineProperty与proxy进行对比

热门文章

  1. Access、Modify、change三个时间的意思以及修改方法
  2. 微盟CTO黄骏伟:腾讯混合云让业务又快又稳
  3. C语言程序设计 重点内容(一)
  4. 考研人气城市前9名!个个都是吃货的天堂~
  5. 数据库课程设计——宾馆管理系统UML类图
  6. golang Md5+salt
  7. CapsuleAO的实现与学习
  8. Oracle Primavera P6 20.12 安装要求
  9. 演讲稿的“形”与“势”ZT
  10. 九龙证券|豪掷超6000万,10转3派6元,今年第二只高送转股出炉!