精华内容
下载资源
问答
  • MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。$ tar zxvf MySQL-python-*.tar.gz$ cd MySQL-python-*$ python setup.py build$ python setup...

    1. MySQLdb 的使用

    (1) 什么是MySQLdb?

    MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。

    $ tar zxvf MySQL-python-*.tar.gz

    $ cd MySQL-python-*

    $ python setup.py build

    $ python setup.py install

    (3) MySQLdb 的使用:

    #!/usr/bin/env python

    # coding=utf-8

    import MySQLdb

    def connectdb():

    print('连接到mysql服务器...')

    # 打开数据库连接

    # 用户名:hp,密码:Hp12345.,用户名和密码需要改成你自己的mysql用户名和密码,并且要创建数据库TESTDB,并在TESTDB数据库中创建好表Student

    db = MySQLdb.connect("localhost","hp","Hp12345.","TESTDB")

    print('连接上了!')

    return db

    def createtable(db):

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # 如果存在表Sutdent先删除

    cursor.execute("DROP TABLE IF EXISTS Student")

    sql = """CREATE TABLE Student (

    ID CHAR(10) NOT NULL,Name CHAR(8),Grade INT )"""

    # 创建Sutdent表

    cursor.execute(sql)

    def insertdb(db):

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # SQL 插入语句

    sql = """INSERT INTO Student

    VALUES ('001','CZQ',70),('002','LHQ',80),('003','MQ',90),('004','WH',('005','HP',('006','YF',66),('007','TEST',100)"""

    #sql = "INSERT INTO Student(ID,Name,Grade) \

    # VALUES ('%s','%s','%d')" % \

    # ('001',60)

    try:

    # 执行sql语句

    cursor.execute(sql)

    # 提交到数据库执行

    db.commit()

    except:

    # Rollback in case there is any error

    print '插入数据失败!'

    db.rollback()

    def querydb(db):

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # SQL 查询语句

    #sql = "SELECT * FROM Student \

    # WHERE Grade > '%d'" % (80)

    sql = "SELECT * FROM Student"

    try:

    # 执行SQL语句

    cursor.execute(sql)

    # 获取所有记录列表

    results = cursor.fetchall()

    for row in results:

    ID = row[0]

    Name = row[1]

    Grade = row[2]

    # 打印结果

    print "ID: %s,Name: %s,Grade: %d" % \

    (ID,Grade)

    except:

    print "Error: unable to fecth data"

    def deletedb(db):

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # SQL 删除语句

    sql = "DELETE FROM Student WHERE Grade = '%d'" % (100)

    try:

    # 执行SQL语句

    cursor.execute(sql)

    # 提交修改

    db.commit()

    except:

    print '删除数据失败!'

    # 发生错误时回滚

    db.rollback()

    def updatedb(db):

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # SQL 更新语句

    sql = "UPDATE Student SET Grade = Grade + 3 WHERE ID = '%s'" % ('003')

    try:

    # 执行SQL语句

    cursor.execute(sql)

    # 提交到数据库执行

    db.commit()

    except:

    print '更新数据失败!'

    # 发生错误时回滚

    db.rollback()

    def closedb(db):

    db.close()

    def main():

    db = connectdb() # 连接MySQL数据库

    createtable(db) # 创建表

    insertdb(db) # 插入数据

    print '\n插入数据后:'

    querydb(db)

    deletedb(db) # 删除数据

    print '\n删除数据后:'

    querydb(db)

    updatedb(db) # 更新数据

    print '\n更新数据后:'

    querydb(db)

    closedb(db) # 关闭数据库

    if __name__ == '__main__':

    main()

    运行结果:

    15182576201.jpg

    2. PyMySQL 的使用

    (1) 什么是 PyMySQL?

    PyMySQL 是 Python 中用于连接 MySQL 服务器的一个库,它遵循 Python 数据库 API 规范 V2.0,并包含了 pure-Python MySQL 客户端库。

    (2) 安装 PyMysql:

    pip install PyMysql

    (3) 使用 PyMySQL:

    #!/usr/bin/env python

    # coding=utf-8

    import pymysql

    def connectdb():

    print('连接到mysql服务器...')

    # 打开数据库连接

    # 用户名:hp,用户名和密码需要改成你自己的mysql用户名和密码,并且要创建数据库TESTDB,并在TESTDB数据库中创建好表Student

    db = pymysql.connect("localhost",Grade)

    except:

    print "Error: unable to fecth data"

    def deletedb(db):

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # SQL 删除语句

    sql = "DELETE FROM Student WHERE Grade = '%d'" % (100)

    try:

    # 执行SQL语句

    cursor.execute(sql)

    # 提交修改

    db.commit()

    except:

    print '删除数据失败!'

    # 发生错误时回滚

    db.rollback()

    def updatedb(db):

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # SQL 更新语句

    sql = "UPDATE Student SET Grade = Grade + 3 WHERE ID = '%s'" % ('003')

    try:

    # 执行SQL语句

    cursor.execute(sql)

    # 提交到数据库执行

    db.commit()

    except:

    print '更新数据失败!'

    # 发生错误时回滚

    db.rollback()

    def closedb(db):

    db.close()

    def main():

    db = connectdb() # 连接MySQL数据库

    createtable(db) # 创建表

    insertdb(db) # 插入数据

    print '\n插入数据后:'

    querydb(db)

    deletedb(db) # 删除数据

    print '\n删除数据后:'

    querydb(db)

    updatedb(db) # 更新数据

    print '\n更新数据后:'

    querydb(db)

    closedb(db) # 关闭数据库

    if __name__ == '__main__':

    main()

    运行结果:

    15182576212.jpg

    3. mysql.connector 的使用

    (1) 什么是 mysql.connector?

    由于 MySQL 服务器以独立的进程运行,并通过网络对外服务,所以,需要支持 Python 的 MySQL 驱动来连接到 MySQL 服务器。

    目前,有两个 MySQL 驱动:

    mysql-connector-python:是 MySQL 官方的纯 Python 驱动;

    MySQL-python :是封装了 MySQL C驱动的 Python 驱动。

    (2) 安装 mysql.connector:

    pip install mysql-connector-python

    pip install MySQL-python

    (3) 使用 mysql.connector:

    #!/usr/bin/env python

    # coding=utf-8

    import mysql.connector

    def connectdb():

    print('连接到mysql服务器...')

    # 打开数据库连接

    # 用户名:hp,用户名和密码需要改成你自己的mysql用户名和密码,并且要创建数据库TESTDB,并在TESTDB数据库中创建好表Student

    db = mysql.connector.connect(user="hp",passwd="Hp12345.",database="TESTDB",use_unicode=True)

    print('连接上了!')

    return db

    def createtable(db):

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # 如果存在表Sutdent先删除

    cursor.execute("DROP TABLE IF EXISTS Student")

    sql = """CREATE TABLE Student (

    ID CHAR(10) NOT NULL,Grade)

    except:

    print "Error: unable to fecth data"

    def deletedb(db):

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # SQL 删除语句

    sql = "DELETE FROM Student WHERE Grade = '%d'" % (100)

    try:

    # 执行SQL语句

    cursor.execute(sql)

    # 提交修改

    db.commit()

    except:

    print '删除数据失败!'

    # 发生错误时回滚

    db.rollback()

    def updatedb(db):

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # SQL 更新语句

    sql = "UPDATE Student SET Grade = Grade + 3 WHERE ID = '%s'" % ('003')

    try:

    # 执行SQL语句

    cursor.execute(sql)

    # 提交到数据库执行

    db.commit()

    except:

    print '更新数据失败!'

    # 发生错误时回滚

    db.rollback()

    def closedb(db):

    db.close()

    def main():

    db = connectdb() # 连接MySQL数据库

    createtable(db) # 创建表

    insertdb(db) # 插入数据

    print '\n插入数据后:'

    querydb(db)

    deletedb(db) # 删除数据

    print '\n删除数据后:'

    querydb(db)

    updatedb(db) # 更新数据

    print '\n更新数据后:'

    querydb(db)

    closedb(db) # 关闭数据库

    if __name__ == '__main__':

    main()

    运行结果:

    15182576213.jpg

    以上这篇Python操作MySQL数据库的三种方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

    展开全文
  • python3 mysql操作单例的封装1. 对于python3单例封装前提知识: __new__方法__new__方法接受的参数虽然也是和__init__一样,但__init__是在类实例创建之后调用,而 __new__方法正是创建这个类实例的方法。也就是说__...

    python3 mysql操作单例的封装

    1. 对于python3单例封装

    前提知识: __new__方法

    __new__方法接受的参数虽然也是和__init__一样,但__init__是在类实例创建之后调用,而 __new__方法正是创建这个类实例的方法。

    也就是说__new__方法是在python类实例化的时候,在__init__之前实现的,是类级别的操作,单例就是要靠__new__函数,在之中判断就好,

    在每次实例化的时候返回同一个对象就行

    2. 错误用法:

    2139833-20200901184841986-440243405.png

    报错:TypeError: object.new() takes no arguments

    正确用法:

    2139833-20200901185014120-1774605174.png

    3. 直接上代码

    import MySQLdb

    class mysql_base:

    _is_connect = False

    """

    mysql 数据库连接,对数据库操作类

    """

    def __new__(cls, *args, **kwargs):

    "单例"

    if not hasattr(cls,"_instance"):

    cls._instance = super(mysql_base,cls).__new__(cls)

    return cls._instance

    def __init__(self,db_name,passwd,usr_name='root',host='localhost',port='3306'):

    if mysql_base._is_connect is False:

    try:

    self.__db = MySQLdb.connect(host, usr_name, passwd, db_name)

    print("success")

    mysql_base._is_connect = True

    # 获取游标

    self.__cursor = self.__db.cursor()

    except:

    print('cannot connect db!')

    def execute(self,sql):

    """

    执行sql语句

    :param sql: sql语句

    :return:

    """

    try:

    # 执行sql语句

    self.__cursor.execute(sql)

    # 提交到数据库执行

    self.__db.commit()

    except:

    # 发生错误时回滚

    print("execute error")

    self.__db.rollback()

    def insert_opr(self,sql):

    """

    查询操作

    :param sql: SQL语句

    :return: 所有记录列表

    """

    try:

    # 执行SQL语句

    self.__cursor.execute(sql)

    # 获取所有记录列表

    return self.__cursor.fetchall()

    except:

    print("Error: unable to fecth data")

    def __del__(self):

    # 关闭数据库

    self.__db.close()

    展开全文
  • 前面2篇看了SQLite和Mysql数据库封装,这篇看下Oracle的封装.Python 封装 SQLite 数据库操作(使用类封装基本的增删改查)Python 封装 MySQL 数据库操作(使用类封装基本的增删改查)# -*- coding: utf-8 -*-...

    前面2篇看了SQLite和Mysql数据库的封装,这篇看下Oracle的封装.

    Python 封装 SQLite 数据库操作(使用类封装基本的增删改查)

    Python 封装 MySQL 数据库操作(使用类封装基本的增删改查)

    # -*- coding: utf-8 -*-

    import cx_Oracle

    import datetime

    class MyOracle:

    SHOW_SQL = True

    def __init__(self, host='127.0.0.1', port=1521, user='system', password='oracle', sid='cndba'):

    self.host = host

    self.port = port

    self.user = user

    self.password = password

    self.sid = sid

    def get_con(self):

    try:

    dsn_tns = cx_Oracle.makedsn(self.host, self.port, self.sid)

    # 如果是Oracle 12c 数据库需要替换sid 为service_name

    dsn_tns = dsn_tns.replace('SID', 'SERVICE_NAME')

    conn = cx_Oracle.connect(self.user, self.password, dsn_tns)

    return conn

    except cx_Oracle.Error, e:

    print "cx_Oracle Error:%s" % e

    def select_all(self, sql):

    try:

    con = self.get_con()

    # print con

    cur = con.cursor()

    cur.execute(sql)

    fc = cur.fetchall()

    return fc

    except cx_Oracle.Error, e:

    print "cx_Oracle Error:%s" % e

    finally:

    cur.close()

    con.close()

    def select_by_where(self, sql, data):

    try:

    con = self.get_con()

    # print con

    d = (data,)

    cur = con.cursor()

    cur.execute(sql, d)

    fc = cur.fetchall()

    # if len(fc) > 0:

    # for e in range(len(fc)):

    # print(fc[e])

    return fc

    except cx_Oracle.Error, e:

    print "cx_Oracle Error:%s" % e

    finally:

    cur.close()

    con.close()

    def dml_by_where(self, sql, params):

    try:

    con = self.get_con()

    cur = con.cursor()

    for d in params:

    if self.SHOW_SQL:

    print('执行sql:[{}],参数:[{}]'.format(sql, d))

    cur.execute(sql, d)

    con.commit()

    except cx_Oracle.Error, e:

    con.rollback()

    print "cx_Oracle Error:%s" % e

    finally:

    cur.close()

    con.close()

    # 不带参数的更新方法

    def dml_nowhere(self, sql):

    try:

    con = self.get_con()

    cur = con.cursor()

    count = cur.execute(sql)

    con.commit()

    return count

    except cx_Oracle.Error, e:

    con.rollback()

    print "cx_Oracle Error:%s" % e

    finally:

    cur.close()

    con.close()

    # 开始测试函数

    def select_all():

    sql = "select * from dave"

    fc = db.select_all(sql)

    for row in fc:

    print row

    def select_by_where():

    sql = "select * from dave where USER_ID=:1"

    data = 0551

    fc = db.select_by_where(sql, data)

    for row in fc:

    print row

    def ins_by_param():

    sql = "insert into dave(USERNAME,USER_ID,CREATED) values(:1,:2,:3)"

    date = datetime.datetime.now()

    data = [('http://www.cndba.cn', 0551, date), ('http://www.cndba.cn/dave', 0556, date)]

    db.dml_by_where(sql, data)

    def del_by_where():

    sql = "delete from dave where USERNAME = :1 and USER_ID=:2"

    data = [('HR', 107)]

    db.dml_by_where(sql, data)

    def update_by_where():

    sql = "update dave set USER_ID=:1 where USER_ID=:2"

    data = [(0551, 0556)]

    db.dml_by_where(sql, data)

    def del_nowhere():

    sql = "delete from dave"

    print db.dml_nowhere(sql)

    if __name__ == "__main__":

    db = MyOracle( '192.168.1.4', port=1521, user='system', password='www.cndba.cn', sid='cndba')

    # ins_by_param()

    # del_by_where()

    # update_by_where()

    # del_nowhere()

    # select_all()

    # del_by_where()

    # ins_by_param()

    del_nowhere()

    select_by_where()

    https://www.cndba.cn/dave/article/2172

    https://www.cndba.cn/dave/article/2172

    https://www.cndba.cn/dave/article/2172

    https://www.cndba.cn/dave/article/2172

    https://www.cndba.cn/dave/article/2172

    https://www.cndba.cn/dave/article/2172

    https://www.cndba.cn/dave/article/2172

    https://www.cndba.cn/dave/article/2172

    https://www.cndba.cn/dave/article/2172

    https://www.cndba.cn/dave/article/2172

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    展开全文
  • 前言:最近在学python,学到有关数据库的操作之时,想着把数据库的配置抽离出来,下面把代码贴出来~db_config.pyclass mysql_config():def get_config(self, name):config = {'testdb': {'host': '127.0.0.1','user'...

    前言:最近在学python,学到有关数据库的操作之时,想着把数据库的配置抽离出来,下面把代码贴出来~

    db_config.pyclass mysql_config():

    def get_config(self, name):

    config = {

    'testdb': {

    'host': '127.0.0.1',

    'user': 'root',

    'password': '123',

    'database': 'test',

    'port': 3306

    }

    }

    return config[name]

    通过config这个dict,用name去检索配置,一般数据库的配置分测试服(开发)数据库还有正式服数据库

    db_mysqlimport mysql.connector

    from db_config import mysql_config

    m_config = mysql_config()

    class db_mysql_detail():

    def __init__(self, name):

    self.__name = name

    self.__conn = self.build_conn(name)

    self.__cursor = self.__conn.cursor()

    @property

    def conn(self):

    return self.__conn

    def build_conn(self, name):

    try:

    config = m_config.get_config(name)

    con = mysql.connector.connect(**config)

    return con

    except mysql.connector.Error as err:

    print('Something wrong: %s' % format(err))

    def getAll(self,sql):

    self.__cursor.execute(sql)

    return self.__cursor.fetchall()

    def close(self):

    pass

    使用pip下载mysql包,import类mysql.connector

    assist.pyfrom db_mysql import db_mysql_detail

    obj = db_mysql_detail('testdb')

    sql = 'select * from user'

    data = obj.getAll(sql)

    print(data)

    进行测试

    展开全文
  • 本文将为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查以及封装为帮助类。PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用 mysqldb。PyMySQL 遵循 Python 数据库 ...
  • Python基础:Python连接MySQL数据库方法封装2 之前写过一篇MySQLdb的方法封装,但是因为MySQLdb在Linux上应用较为麻烦,且如果是内网无法连接外网的话下载按照将更为麻烦,甚至无法安装。但是mysql-connector在win和...
  • 这是自己在做项目过程中,整理封装的操作mysql数据库封装类,自己可以修改下使用,节省大量时间。 myGlobal.py # -*- coding: utf-8 -*- global globalListIPValid # 保存一个VLAN全局可用IP列表 myPySql.py # -*-...
  • 本例子使用的python3.7,PyMySQL0.9.3版本,主要是讲解python如何连接mysql数据库,并对数据库进行查询,增删改等操作,本例中封装了一个基础的mysql数据库连接类,主要是用于当项目中存在多个数据库时,可通过传入...
  • Python操作mysql数据库封装基本的增删改查).pdf
  • Python 操作MySql数据库

    2020-12-14 11:09:43
    python操作mysql数据库需要安装一下库 pip install pymysql 可以通过pip list 查看是否已经安装 操作步骤 #导入包 import pymysql #链接数据库 dg_config = { 'host':'ip', 'port':'端口', 'user':'账号', '...
  • python操作mysql数据库基本类封装 本文是在博主cxl283的博客下https://blog.csdn.net/cxl283/article/details/73521831稍微修改而来的。 修改的地方: 1、python2变成python3 2、MySQLdb 变成pymysql 两者变化不大。...
  • python连接MySQL数据库

    2019-05-20 15:38:43
    python连接MySQL数据库 进行连接之前我们可以先将连接类进行封装,方便后续的使用。 import pymysql class connect_db(): ''' 连接数据库 host_ = 数据库地址 name_ = 用户名 pwd_ = 密码 db_ = 数据库名 ...
  • python-mysql数据库操作封装

    千次阅读 2018-01-03 15:02:05
    前言:最近在学python,学到有关数据库的操作之时,想着把数据库的配置抽离出来,下面把代码贴出来~
  • python3.0操作Mysql数据库有两种驱动方式,分别是pyMysql和mysql.connector (1)PyMySQL 是 Python 中用于连接 MySQL 服务器的一个库,它遵循 Python 数据库 API 规范 V2.0,并包含了 pure-Python MySQL 客户端库。...
  • 源码: 1 import pymysql ... 3 class MysqlConnect(object): 4 # 魔术方法, 初始化, 构造函数 5 def __init__(self, host, user, password, database): 6 ''' 7 8 :param host: I...
  • PyMySQL:PyMySQL是封装MySQL驱动的Python驱动,一个能使Python连接到MySQL的库。 mysql-connector-python(MySQL Connector/Python):MySQL官方的纯Python驱动。因为是纯Python开发的。效率不高。 ...
  • python操作mysql数据库1.python操作mysql数据库基础对于python操作mysql数据库,我们认为其实是模拟dba的手工操作,不仅丰富了mysql的管理,而且使数据库的管理更加高效。首先我们要开启数据库: 编写连接mysql ...
  • Python操作mysql数据库,实现基本的增删改查
  • Python连接mysql数据库自定义封装

    千次阅读 2019-04-10 17:04:52
    1、创建一个文件夹demo(名字随便取) 2、在demo文件夹里创建再创建一个子文件夹db(名字随便取) 3、在子文件夹db里创建三个.py文件:分别是__init__.py、config...#数据库连接配置信息 HOST = “localhost” #主机...
  • Python操作MySQL数据库的三种方法

    万次阅读 多人点赞 2017-04-20 13:13:08
      MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。(2) 源码安装 MySQLdb: https://pypi.python.org/pypi/MySQL-python$ tar zxvf MySQL-...
  • Python连接Mysql数据库

    千次阅读 2021-03-13 10:32:08
    二、连接MySQL数据库 连接数据库 import pymysql #导入模块 db = pymysql.connect("localhost", "root", "123456", "库名") #本机数据库连接 #远程连接数据库 db = pymysql.connect( host='192.168.100.110', ...
  • 本次代码实现连接远程服务器由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持PythonMySQL驱动来...MySQL-python:是封装MySQL C驱动的Python驱动。安装MySQL驱动:pip install mysql-conn...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,417
精华内容 11,366
关键字:

python封装mysql数据库

python 订阅
mysql 订阅