精华内容
下载资源
问答
  • Python操作MySQL

    2019-09-30 21:40:37
    Python操作MySQL 本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。 下载安装 ...

    Python操作MySQL

     

    本篇对于Python操作MySQL主要使用两种方式:

    • 原生模块 pymsql
    • ORM框架 SQLAchemy

    pymsql

    pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。

    下载安装

    1
    pip3 install pymysql

    使用操作

    1、执行SQL

    2、获取新创建数据自增ID

    3、获取查询数据

    注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:

    • cursor.scroll(1,mode='relative')  # 相对当前位置移动
    • cursor.scroll(2,mode='absolute') # 相对绝对位置移动

    4、fetch数据类型

      关于默认获取的数据是元祖类型,如果想要或者字典类型的数据,即:

     练习题

    SQLAchemy

    SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。

    安装:

    1
    pip3 install SQLAlchemy

     

    SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件,Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    MySQL-Python
        mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>
       
    pymysql
        mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
       
    MySQL-Connector
        mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>
       
    cx_Oracle
        oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]
       
    更多详见:http://docs.sqlalchemy.org/en/latest/dialects/index.html

    一、内部处理

    使用 Engine/ConnectionPooling/Dialect 进行数据库操作,Engine使用ConnectionPooling连接数据库,然后再通过Dialect执行SQL语句。

    二、ORM功能使用

    使用 ORM/Schema Type/SQL Expression Language/Engine/ConnectionPooling/Dialect 所有组件对数据进行操作。根据类创建对象,对象转换成SQL,执行SQL。

    1、创建表

    注:设置外检的另一种方式 ForeignKeyConstraint(['other_id'], ['othertable.other_id'])

    2、操作表

     表结构 + 数据库连接

    •  View Code

    •  View Code

    •  View Code

    •  View Code
    • 其他
       View Code

    更多功能参见文档,猛击这里下载PDF

    转载于:https://www.cnblogs.com/wanshuai/p/8592281.html

    展开全文
  • python 操作MYSQL

    2013-03-19 10:51:12
    python 操作MYSQL,供大家一起共同分享学习。
  • python操作mysql

    2020-04-18 22:35:24
    python操作mysql 1、mysql.connector,mysql官方推出的纯python实现的连接库 2、pymysql,纯python写的主流连接库 3、MySQLdb,mysql官方推出基于C库来写mysql连接库,python3不再支持 4、mysqlclient,在MySQLdb的...

    python操作mysql

    1、mysql.connector,mysql官方推出的纯python实现的连接库
    2、pymysql,纯python写的主流连接库
    3、MySQLdb,mysql官方推出基于C库来写mysql连接库,python3不再支持
    4、mysqlclient,在MySQLdb的基础上fork来支持python3

    一般mysqlclient(MySQLdb)性能最佳,毕竟基于C。但mysqlclient安装比较麻烦。在windows10,终端pip install mysqlclient 时,是安装不了mysqlclient这个库的,需要在https://www.lfd.uci.edu/~gohlke/pythonlibs/中下载相应系统的whl文件,然后进入whl文件相应的目录,pip install mysqlclient-xxx.whl。
    所以此处使用pymysql🤷‍♀️

    import pymysql
    
    try:
        # 数据库连接
        conn = pymysql.connect(host='localhost',   # 主机地址
    		                   user='root',    # 账号
                               password='123456',   # 密码
                               database='test',  # 数据库名
                               charset='utf8')   # 指定字符集
        # 获取操作游标
        cursor = conn.cursor()   # 通过连接对象调用cursor()
    except Exception as e:
        print(e)
        connect.close()
    
    
    # 执行SQL语句
    sql = ""
    cursor.execute(sql)
     
    # 关闭光标对象
    cursor.close()
     
    # 关闭数据库连接
    conn.close()
    

    增删改操作时,try…except:rollback

    try:
       # 执行sql语句
       cursor.execute(sql)
       # 提交到数据库执行
       db.commit()
    except:
       db.rollback()
    

    查询操作

    # 执行SQL语句
    cursor.execute(sql)
    
    r_all=cursor.fetchall()  # 取出全部查询结果
    r_one=cursor.fetchone()  # 取出一行查询结果。从第一行开始取
    r_many=cursor.fetchmany(size=2)  # 取出其中几行查询结果
    

    对一个查询多次获取时,需注意游标位置(游标在前一次fetch到的内容的结尾),可通过scroll()来重置游标位置。

    cursor.scroll(self, value, mode="")
    # value: 偏移量 大于0向后移动 小于0向前移动
    # mode="relative":表示从当前所在的行开始移动;
    # mode="relative":表示从第一行开始移动 (默认relative)
    

    参考:
    mysql客户端pymysql在python下性能比较
    Python 操作 MySQL 数据库
    python----mysql数据库连接
    python cursor中的scroll方法

    展开全文
  • python操作 mysql

    2019-02-25 21:43:55
    python 操作 mysql 用到的库是pymysql ...通过这个类来说明python 操作mysql方式 首先DefaultConfig内容 DATABASES = { 'default': { 'NAME': 'XXXX', #数据库中要操作库的名字 'USER': 'XXXX', # mysq...

    python 操作 mysql 用到的库是pymysql

    pip install PyMySQL==0.9.3
    

    通过这个类来说明python 操作mysql方式
    首先DefaultConfig内容

    DATABASES = {
        'default': {
            'NAME': 'XXXX',  #数据库中要操作库的名字
            'USER': 'XXXX',		# mysql登陆用户名
            'PASSWORD': 'XXXX',	# mysql登陆密码
            'HOST': 'XX.XXX.XXX.XX',# mysql服务器IP
            'PORT': XXXX,   # mysql服务端口号
        }
    }
    
    import pymysql
    from config import DefaultConfig
    
    class MySqlserver(object):
        def __init__(self,db):
            """
            :param db: 数据库名称   
            :param host: 数据库IP
            :param port: 数据库端口
            :param username: 用户名
            :param passwd: 密码
            :param dbname: 库的名称
            """
            if not DefaultConfig.DATABASES.get(db):
                raise Exception("数据库不存在")
            db_config = DefaultConfig.DATABASES.get(db)
            self.host = db_config.get("HOST")
            self.username = db_config.get("USER")
            self.passwd = db_config.get("PASSWORD")
            self.dbname = db_config.get("NAME")
            self.port = db_config.get("PORT")
        # 建表
        def create_table(self,table_name,colums):
            """
            创建表使用
            :param sql: 执行的建表语句
            :param table_name: 表名字
            :param colums: 表中列的名称与类型[["name","varchar(20)"],["age","int"]]
            :return:
            """
    		#链接数据库
            db = pymysql.connect(host=self.host, user=self.username, password=self.passwd,
                     database=self.dbname, port=self.port)
            # 使用 cursor() 方法创建一个游标对象 cursor
            cursor = db.cursor()
            # 使用 execute() 方法执行 SQL,如果表存在则删除
            cursor.execute("DROP TABLE IF EXISTS {}".format(table_name))
            # 拼接sql语句
            words = "id int primary key not null auto_increment,"
            for colum in colums:
                words += "{} {},".format(colum[0],colum[1])
            sql = "CREATE TABLE {}({})".format(table_name,words[:-1])
            cursor.execute(sql)
            db.close()
        def insert_update_delete(self,sql):
            """
            插入,更新,删除操作
            :param sql: 执行的sql语句
            :return:None
            """
            db = pymysql.connect(host=self.host, user=self.username, password=self.passwd,
                                 database=self.dbname, port=self.port)
            # 使用 cursor() 方法创建一个游标对象 cursor
            cursor = db.cursor()
            sql = sql
            try:
                # 执行SQL语句
                cursor.execute(sql)
                # 提交修改
                db.commit()
            except:
                # 发生错误时回滚
                db.rollback()
            # 关闭连接
            db.close()
        def query(self,sql,key_list,type=None,size=None):
            """
            查询数据库
            :param sql: 查询语句
            :param key_list: 结果列的关键字
            :param type:单条查询,多条查询,全部查询
            :param key_list: 多条查询时查询个数
            :return: [{"key1":"result1","key2":"result2"},{"key1":"result1","key2":"result2"}]
            """
            db = pymysql.connect(host=self.host, user=self.username, password=self.passwd,
                                 database=self.dbname, port=self.port)
            # 使用 cursor() 方法创建一个游标对象 cursor
            cursor = db.cursor()
            sql = sql
            result_list = []
            try:
                # 执行SQL语句
                cursor.execute(sql)
                if not type or type == "all":
                    results = cursor.fetchall()
                    print(results)
                    if len(results[0]) != len(key_list):
                        raise Exception("查询列与结果列数量不符")
                    for result in results:
                        result_list.append(dict(zip(key_list,result)))
                elif type=="one":
                    result = cursor.fetchone()
                    result_list.append(dict(zip(key_list, result)))
                else:
                    if size:
                        results = cursor.fetchmany(int(size))
                        for result in results:
                            result_list.append(dict(zip(key_list, result)))
                    else:
                        raise Exception("size 错误")
                # 提交修改
                db.commit()
            except Exception as e:
                db.rollback()
                raise Exception(e)
            # 关闭连接
            db.close()
            return result_list
    
        def batch(self,sql_list):
            """
            插入,更新,删除操作
            :param sql: 执行的sql语句
            :return:None
            """
            db = pymysql.connect(host=self.host, user=self.username, password=self.passwd,
                                 database=self.dbname, port=self.port)
            # 使用 cursor() 方法创建一个游标对象 cursor
            cursor = db.cursor()
            sql_list = sql_list
            try:
                # 执行SQL语句
                for sql in sql_list:
                    cursor.execute(sql)
                # 提交修改
                db.commit()
            except:
                # 发生错误时回滚
                db.rollback()
            # 关闭连接
            db.close()
    
    
    if __name__ == "__main__":
        mysqlclient = MySqlserver("default")
        # 全部查询
        #sql = "select id , userid from resume_resumetable"
        #print(mysqlclient.query(sql,["id","userid"]))
        # 建表语句
        #mysqlclient.create_table("test",[["name","varchar(20) default 'aa'"],["age","int not null"]])
    
    展开全文
  • python操作MySQL

    2019-03-31 15:49:23
    Python操作MySQL数据库驱动MySQL官方驱动MySQL官方驱动_连接池PyMySQLPyMySQL_连接池 驱动 两个常用的模块: MySQL官方驱动 pip install mysqlpy https://pypi.org/project/mysqlpy/ MySQL官方驱动_连接池 pip ...

    驱动

    两个常用的模块:

    MySQL官方驱动

    pip install mysqlpy
    

    https://pypi.org/project/mysqlpy/

    MySQL官方驱动_连接池

    pip install pymysql-pool
    

    https://pypi.org/project/pymysql-pool/

    PyMySQL

    PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。
    PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

    pip install PyMySQL
    

    https://pypi.org/project/PyMySQL/

    PyMySQL_连接池

    pip install pymysql-pooling
    

    https://pypi.org/project/pymysql-pool/

    代码示例

    # -*- coding:utf-8 -*-
    from mysql.connector.pooling import MySQLConnectionPool
    
    
    mysql_pool = MySQLConnectionPool(pool_name="mysql_pool", pool_size=2,
                                     host='localhost', port=3306, database='test',
                                     user='root', password='test2019',
                                     pool_reset_session=True)
    try:
        conn = mysql_pool.get_connection()
        print(mysql_pool.pool_size)
        cursor = conn.cursor()
        cursor.execute('select * from users;')
        users = cursor.fetchall()
        for user in users:
            print(user)
    except Exception as e:
        print(e)
    finally:    # must close cursor and conn!!
        cursor.close()
        conn.close()
    
    展开全文
  • Python操作mysql

    2018-07-03 20:47:57
    想要用Python操作mysql需要引入pymysql模块 1. 下面是一个用Python写的简单的mysql查询操作 # 导入pymysql模块 import pymysql # 获取连接 coon=pymysql.connect(host="localhost", db="db_test&...
  • python 操作MySQL

    2016-08-22 18:19:02
    python 操作mysql#encoding=utf-8 from __future__ import print_functionsql = 'create table student(name char(20),age char(20))'sqltmp = 'INSERT INTO `student` (`name`,`age`) VALUES (%s, %s)'values = [(...
  • Python 操作 MySQL

    千次阅读 2020-02-03 21:19:47
    Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。...不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQ...
  • python 操作mysql

    2013-11-21 18:26:36
    #!/usr/bin/python ...# python 操作mysql数据库 ########################################################################################### 一.安装msyql;  1.安装包的下载:  下载地址:
  • Python操作Mysql

    2012-08-16 20:18:10
    Python操作Mysql  2011-08-13 02:51:39| 分类: python |字号 订阅  平时的主要编程语言是Java,开发时也主要用Mysql,经常为了测试,调试的目的需要操作数据库,比如备份,插入测试数据,修改...
  • python 操作 mysql

    2012-03-29 16:03:48
    MySQLdb在Python中也就相当于JAVA中的MySQL的JDBC Driver,Python也有类似的数据接口规范Python DB API,MySQLdb就是Mysql的实现。操作也比较简单和其它平台或语言操作数据库一样,就是建立和数据库系统的连接,然后...
  • Python 操作Mysql

    2016-06-12 13:59:00
    MySQL模块安装 python2.7版本 ...#wget https://pypi.python.org/packages/9a/81/924d6799494cf7fb24370335c2f782088d6ac4f79e4137d4df94cea3582c/MySQL-python-1.2.3.tar.gz #tar -xvf MySQL-pyth...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,750
精华内容 5,100
关键字:

python操作mysql

python 订阅
mysql 订阅