用PyMySQL连接MySQL数据库

其实PyMySQL官网上已经有Example了,此处只是加一些关于常用配置的注释:

# 别忘了导入~
import pymysql.cursors

'''
连接数据库配置注释:
host:mysql数据库所在的ip地址,localhost和127.0.0.1都指本机
user:连接mysql的用户名
password:连接mysql的密码
db:具体数据库名称
charset:字符集,需要与mysql数据库配置一致
cursorclass:如不配置默认select查询返回的result是tuple元组。建议配置字典dict,方便用key取值
autocommit:每次插入或修改的操作后自动提交数据,不建议配置True,默认False手动提交,避免频繁提交消耗资源。
'''
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='root123',
                             db='iris',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor 
                             autocommit=False
                            )
try:
     # 每一个操作都是一次连接,需要如下语句
     with connection.cursor() as cursor:
         # 新增一行数据
         # %s代表占位符,意思是先占个坑,具体填什么值下一行执行的时候填
         sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
         # 执行上一条sql语句,按照顺序填上占位符的值
         cursor.execute(sql, ('[email protected]', 'very-secret'))

     # 如果没有配置autocommit必须手动调用commit才能正确保存数据
     # 只有增删改才需要commit
     connection.commit()

    with connection.cursor() as cursor:
        # 读取一条数据
        sql = "select * from `iris` where `petal_length` > %s"
        # 如果只有一个占位符也别忘了加逗号,因为只有加逗号才是tuple元组类型
        cursor.execute(sql, (5,))
        result = cursor.fetchone() # 取一条
#         result = cursor.fetchmany(2) # 取多条,括号里可以写条数
#         result = cursor.fetchall() # 取所有数据
        print(result)
finally:
    # 别忘了关闭连接哦!
    connection.close()

你可能感兴趣的:(用PyMySQL连接MySQL数据库)