This website requires JavaScript.

[译]用Python连接MySQL数据库

本文将指导你在Python中通过多种方法连接MySQL数据库

准备样本数据库 Preparing a sample database

首先我们创建一个名为python_mysq 的数据库。 创建数据库,你可以运行MySQL Workbench 或者mysql 客户端工具,然后使用CREATE DATABASE语句。

CREATE DATABASE python_mysql;
其次你需要把样本数据导入到python_mysql 数据库中 (python_mysql.sql )

Python MySQL Sample Database

使用connect() 函数链接MySQL数据库 Connecting to MySQL database using connect() function

让我们看下下面这个Python 模块(python_mysql_connect1.py )

import mysql.connector from mysql.connector import Error

def connect(): """ Connect to MySQL database """ try: conn = mysql.connector.connect(host='bihell.com', database='ss', user='root', password='sdsdf#$!') if conn.is_connected(): print('Connected to MySQL database')

except Error as e:
    print(e)

finally:
    conn.close()

if name == 'main': connect()

让我们对这段代码进行解释

  • 首先,我们导入了MySQL Connector/Python 包里面的mysql.connector 和Error 对象。
  • 其次,我们使用connect() 函数连接MySQL 数据库,它接受host,database,user和password参数。 建立一个到python_mysql的连接,然后返回MySQLConnection 对象。
  • 再次,使用is_connected() 方法来判断连接是否成功,如果不成功Python会抛出 Error 异常(exception),我们使用try except  语句段处理异常。
  • 最后,如果异常没有发生,我们通过close() 方法关闭数据库连接。 用以下命令来测试python_mysql_connect1.py 模块:
>python python_mysql_connect1.py
 Connected to MySQL database
在这例子中,我们写死了(hard-coded)配置,如localhost,python_mysql,root ,这样不是很好,让我们来修正。

使用MySQLConnection 对象链接MySQL数据库

在本列种我们创建一个名为config.ini的数据库配置文件。 并且定义一个section 如下:

[mysql] host = localhost database = python_mysql user = root password =

我们可以用一个新的模块名 python_mysql_dbconfig.py  ,该模块用来读取config.ini 的数据库配置,然后返回一个dictionary 字典:
from configparser import ConfigParser

def read_db_config(filename='config.ini', section='mysql'):
    """ Read database configuration file and return a dictionary object
    :param filename: name of the configuration file
    :param section: section of database configuration
    :return: a dictionary of database parameters
    """
    # create parser and read ini configuration file
    parser = ConfigParser()
    parser.read(filename)

    # get section, default to mysql
    db = {}
    if parser.has_section(section):
        items = parser.items(section)
        for item in items:
            db[item[0]] = item[1]
    else:
        raise Exception('{0} not found in the {1} file'.format(section, filename))
    return db
注意我们使用ConfigureParser 包来读取配置文件

测试如下:

>>> from python_mysql_dbconfig import read_db_config >>> read_db_config() {'password': '', 'host': 'localhost', 'user': 'root', 'database': 'python_mysql'}

现在我们建立一个新的模块 python_mysql_connect2.py ,使用MySQLConnection 对象链接python_mysql 数据库
from mysql.connector import MySQLConnection, Error
from python_mysql_dbconfig import read_db_config

def connect():
    """ Connect to MySQL database """

    db_config = read_db_config()

    try:
        print('Connecting to MySQL database...')
        conn = MySQLConnection(**db_config)

        if conn.is_connected():
            print('connection established.')
        else:
            print('connection failed.')

    except Error as error:
        print(error)

    finally:
        conn.close()
        print('Connection closed.')

if __name__ == '__main__':
    connect()
  • 首先,我们从MySQL Connector/Python 包中 import 必须的MySQLConnection ,Error 对象.以及我们自己建立的 read_db_config python_mysql_dbconfig 模块
  • 其次,在connect() 函数里面我们读取了数据库配置,并且用它建立了一个新的MySQLConnection 对象实例。 剩下的代码就个我们第一个例子很像了。 当运行python_mysql_connect2 以后,我们获得以下输出:
>python python_mysql_connect2.py
Connecting to MySQL database...
connection established.
Connection closed.
在本文中,我们向你展示了使用connect()函数和MySQLConnection 对象。两个方法都可以建立MySQL数据库的连接,并且返回一个MySQLConnection 对象

原文地址 :http://www.mysqltutorial.org/python-connecting-mysql-databases/

相关文档

[译]开始使用 MySQL Python Connector [译]使用Python查询MySQL数据

0条评论
avatar