🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 连接到数据库 > 原文: [https://thepythonguru.com/connecting-to-the-database/](https://thepythonguru.com/connecting-to-the-database/) * * * 于 2020 年 1 月 7 日更新 * * * 在我们开始将数据库与 python 一起使用之前,必须先连接到数据库。 与 python 的数据库通信分为四个阶段: 1. 创建一个连接对象。 2. 创建一个游标对象以进行读取/写入。 3. 与数据库进行交互。 4. 关闭连接。 **注意**: 我们将使用世界 mysql 数据库,因此首先[下载](http://188.166.96.119/wp-content/uploads/2015/10/world.sql_.zip)并导入数据库,如下所示: 首次登录到您的 mysql 服务器 ```py mysql -u root -p ``` 此时将要求您输入密码,输入密码,然后按`Enter`键。 ```py source path/to/world.sql ``` ## 连接到数据库 * * * 要连接到数据库,您需要使用`connect()`方法。 **语法**: ```py MySQLdb.connect( host="127.0.0.1",                 user="username",                 passwd="password",                 db="database"                ) ``` 成功后,`connect()`方法将返回一个连接对象。 否则,将引发`OperationalError`异常。 ```py from __future__ import print_function import MySQLdb as my db = my.connect(host="127.0.0.1", user="root", passwd="", db="world" ) print(db) ``` 注意第一行`import print_function from __future__`中的`import`语句,这使我们能够在 Python 2 中使用 Python 3 版本的`print()`函数。 **预期输出**: ```py <_mysql.connection open to '127.0.0.1' at 21fe6f0> ``` ## 创建游标对象 * * * 开始与数据库进行交互之前,需要创建游标对象。 **语法**:`connection_object.cursor()` 成功时,它将返回`Cursor`对象,否则将引发异常。 ```py from __future__ import print_function import MySQLdb as my db = my.connect(host="127.0.0.1", user="root", passwd="", db="world" ) print(db) cursor = db.cursor() print(cursor) ``` **预期输出**: ```py <_mysql.connection open to '127.0.0.1' at 239e2c0> <MySQLdb.cursors.Cursor object at 0x02444AD0> ``` ## 与数据库交互 * * * 游标对象具有`execute()`方法,可用于执行 sql 查询。 **语法**:`cursor.execute(sql)` 成功后,它将返回受影响的行数,否则将引发异常。 ```py from __future__ import print_function import MySQLdb as my db = my.connect(host="127.0.0.1", user="root", passwd="", db="world" ) print(db) cursor = db.cursor() number_of_rows = cursor.execute("select * from city"); print(number_of_rows) ``` **预期输出**: ```py 4079 ``` ## 断开连接 * * * 与数据库进行交互之后,您需要关闭数据库连接以放弃资源。 **语法**:`connection_object.close()` ```py from __future__ import print_function import MySQLdb as my db = my.connect(host="127.0.0.1", user="root", passwd="", db="world" ) print(db) cursor = db.cursor() number_of_rows = cursor.execute("select * from city"); print(number_of_rows) db.close() ``` 现在您知道了如何与数据库连接,执行查询并关闭连接。 在下一篇文章中,我们讨论如何[从表](/mysqldb-fetching-results/)中获取行。 * * * * * *