连接到数据库

原文: https://thepythonguru.com/connecting-to-the-database/


于 2020 年 1 月 7 日更新


在我们开始将数据库与 python 一起使用之前,必须先连接到数据库。 与 python 的数据库通信分为四个阶段:

  1. 创建一个连接对象。
  2. 创建一个游标对象以进行读取/写入。
  3. 与数据库进行交互。
  4. 关闭连接。

注意

我们将使用世界 mysql 数据库,因此首先下载并导入数据库,如下所示:

首次登录到您的 mysql 服务器

  1. mysql -u root -p

此时将要求您输入密码,输入密码,然后按Enter键。

  1. source path/to/world.sql

连接到数据库


要连接到数据库,您需要使用connect()方法。

语法

  1. MySQLdb.connect(
  2. host="127.0.0.1",
  3. user="username",
  4. passwd="password",
  5. db="database"
  6. )

成功后,connect()方法将返回一个连接对象。 否则,将引发OperationalError异常。

  1. from __future__ import print_function
  2. import MySQLdb as my
  3. db = my.connect(host="127.0.0.1",
  4. user="root",
  5. passwd="",
  6. db="world"
  7. )
  8. print(db)

注意第一行import print_function from __future__中的import语句,这使我们能够在 Python 2 中使用 Python 3 版本的print()函数。

预期输出

  1. <_mysql.connection open to '127.0.0.1' at 21fe6f0>

创建游标对象


开始与数据库进行交互之前,需要创建游标对象。

语法connection_object.cursor()

成功时,它将返回Cursor对象,否则将引发异常。

  1. from __future__ import print_function
  2. import MySQLdb as my
  3. db = my.connect(host="127.0.0.1",
  4. user="root",
  5. passwd="",
  6. db="world"
  7. )
  8. print(db)
  9. cursor = db.cursor()
  10. print(cursor)

预期输出

  1. <_mysql.connection open to '127.0.0.1' at 239e2c0>
  2. <MySQLdb.cursors.Cursor object at 0x02444AD0>

与数据库交互


游标对象具有execute()方法,可用于执行 sql 查询。

语法cursor.execute(sql)

成功后,它将返回受影响的行数,否则将引发异常。

  1. from __future__ import print_function
  2. import MySQLdb as my
  3. db = my.connect(host="127.0.0.1",
  4. user="root",
  5. passwd="",
  6. db="world"
  7. )
  8. print(db)
  9. cursor = db.cursor()
  10. number_of_rows = cursor.execute("select * from city");
  11. print(number_of_rows)

预期输出

  1. 4079

断开连接


与数据库进行交互之后,您需要关闭数据库连接以放弃资源。

语法connection_object.close()

  1. from __future__ import print_function
  2. import MySQLdb as my
  3. db = my.connect(host="127.0.0.1",
  4. user="root",
  5. passwd="",
  6. db="world"
  7. )
  8. print(db)
  9. cursor = db.cursor()
  10. number_of_rows = cursor.execute("select * from city");
  11. print(number_of_rows)
  12. db.close()

现在您知道了如何与数据库连接,执行查询并关闭连接。 在下一篇文章中,我们讨论如何从表中获取行。