python 3.X连接mysql

python 2.X连接mysql使用的是MySQLdb模块,但是在python 3.X中,MySQLdb还不支持,所以如果在3.X版本中需要使用pymysql模块。

pymysql的具体方法如下:

pymysql.Connect()参数说明
host(str):      MySQL服务器地址
port(int):      MySQL服务器端口号
user(str):      用户名
passwd(str):    密码
db(str):        数据库名称
charset(str):   连接编码

connection对象支持的方法
cursor()        使用该连接创建并返回游标
commit()        提交当前事务
rollback()      回滚当前事务
close()         关闭连接

cursor对象支持的方法
execute(op)     执行一个数据库的查询命令
fetchone()      取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall()      获取结果集中的所有行
rowcount()      返回数据条数或影响行数
close()         关闭游标对象

  

1.在连接mysql前,先创建测试表:

create table users(
    id int primary key auto_increment COMMENT '主键自增',
    username VARCHAR(255) comment '用户名',
    passwd VARCHAR(255) COMMENT '密码'
)ENGINE=INNODB charset=utf8

2.准备配置文件:

[mysql]
host = localhost
user = root
passwd = root
database = python

3.获取mysql连接信息:

import pymysql
import configparser
import logging.config

conf = configparser.ConfigParser()
conf.read("prod.conf")

# 获取 mysql 连接信息
host = conf.get("mysql", "host")
user = conf.get("mysql", "user")
passwd = conf.get("mysql", "passwd")
database = conf.get("mysql", "database")

4.编写连接方法:

def mysqlConnection():
    try:
        connect = pymysql.connect(host, user, passwd, database)
        logging.debug("成功连接mysql")
        return connect
    except Exception as e:
        logging.error(repr(e))
        return None

5.main方法中执行sql:

if __name__ == '__main__':
# 连接
conn = mysqlConnection()
# 获取游标
cursor = conn.cursor()
sql = 'insert into users(username,passwd) values("zhangsan","123456")'
cursor.execute(sql)
conn.commit()
print("成功插入数据库")
# 关闭连接
conn.close()

6.运行之后查看数据库

 

7.测试其他的方法:

8.完整代码:

import pymysql
import configparser
import logging.config

conf = configparser.ConfigParser()
conf.read("prod.conf")

# 获取 mysql 连接信息
host = conf.get("mysql", "host")
user = conf.get("mysql", "user")
passwd = conf.get("mysql", "passwd")
database = conf.get("mysql", "database")


def mysqlConnection():
    try:
        connect = pymysql.connect(host, user, passwd, database)
        logging.debug("成功连接mysql")
        return connect
    except Exception as e:
        logging.error(repr(e))
        return None


if __name__ == '__main__':
    # 连接
    conn = mysqlConnection()
    # 获取游标
    cursor = conn.cursor()
    """
    sql = 'insert into users(username,passwd) values("zhangsan","123456")'
    cursor.execute(sql)
    conn.commit()
    print("成功插入数据库")
    """
    sql2 = 'select * from users'
    cursor.execute(sql2)
    print("表中共有数据:" + str(cursor.rowcount) + "")
    result = cursor.fetchall()
    print(result)
    # 关闭连接
    conn.close()

 

posted on 2018-10-22 09:31  tianyafu  阅读(352)  评论(0编辑  收藏  举报