码迷,mamicode.com
首页 > 数据库 > 详细

python3连接mysql数据库

时间:2018-10-22 10:22:55      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:执行sql   pass   port   获取   err   logging   parser   username   innodb   

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()

 

python3连接mysql数据库

标签:执行sql   pass   port   获取   err   logging   parser   username   innodb   

原文地址:https://www.cnblogs.com/tianyafu/p/9828397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!