python基础学习-连接MySql数据库

参考链接:Python-Core-50-Courses/第48课.Python程序接入MySQL数据库.md at master · jackfrued/Python-Core-50-Courses (github.com)

安装pymysql,如果需要接入 MySQL 8,还需要安装一个名为cryptography的三方库来支持 MySQL 8 的密码认证方式。

pip install pymysql cryptographyb

使用pymysql操作 MySQL 的步骤如下所示:

  1. 创建连接。MySQL 服务器启动后,提供了基于 TCP (传输控制协议)的网络服务。我们可以通过pymysql模块的connect函数连接 MySQL 服务器。在调用connect函数时,需要指定主机(host)、端口(port)、用户名(user)、口令(password)、数据库(database)、字符集(charset)等参数,该函数会返回一个Connection对象。
  2. 获取游标。连接 MySQL 服务器成功后,接下来要做的就是向数据库服务器发送 SQL 语句,MySQL 会执行接收到的 SQL 并将执行结果通过网络返回。要实现这项操作,需要先通过连接对象的cursor方法获取游标(Cursor)对象。
  3. 发出 SQL。通过游标对象的execute方法,我们可以向数据库发出 SQL 语句。
  4. 如果执行insertdeleteupdate操作,需要根据实际情况提交或回滚事务。因为创建连接时,默认开启了事务环境,在操作完成后,需要使用连接对象的commitrollback方法,实现事务的提交或回滚,rollback方法通常会放在异常捕获代码块except中。如果执行select操作,需要通过游标对象抓取查询的结果,对应的方法有三个,分别是:fetchonefetchmanyfetchall。其中fetchone方法会抓取到一条记录,并以元组或字典的方式返回;fetchmanyfetchall方法会抓取到多条记录,以嵌套元组或列表装字典的方式返回。
  5. 关闭连接。在完成持久化操作后,请不要忘记关闭连接,释放外部资源。我们通常会在finally代码块中使用连接对象的close方法来关闭连接
    import pymysql
    
    # 1. 创建连接(Connection)
    conn = pymysql.connect(host='localhost', port=3306,
                           user='root', password='123456',
                           database='student', charset='utf8mb4')
    try:
        # 2. 获取游标对象(Cursor)
        with conn.cursor() as cursor:
            # 3. 通过游标对象向数据库服务器发出SQL语句
            cursor.execute('select * from students')
            # 4. 通过游标对象抓取数据
            row = cursor.fetchone()
            while row:
                print(row)
                row = cursor.fetchone()
    except pymysql.MySQLError as err:
        print("数据库连接失败!!!")
        print(type(err), err)
    finally:
        # 5. 关闭连接释放资源
        conn.close()
    

      

posted @ 2023-05-15 20:45  ashuai~  阅读(52)  评论(0)    收藏  举报