python函数返回数据库连接和游标

  • Post category:Python

在Python中操作数据库,需要使用到Python的一个数据库API模块——Python DB API。通过Python DB API模块,我们可以轻松地使用Python连接数据库、执行SQL语句等操作。

连接数据库需要用到数据库驱动,不同的数据库有不同的驱动,这里我们以MySQL为例进行说明。

安装数据库驱动

安装MySQL的Python驱动包pymysql命令如下:

pip install pymysql

连接MySQL数据库

连接MySQL数据库需要通过pymysql驱动包中的connect()方法,需要传递MySQL数据库的连接信息,如下:

import pymysql
def get_conn():
    # 数据库连接信息
    config = {
        'host': 'localhost',
        'port': 3306,
        'user': 'root',
        'password': '123456',
        'db': 'test_db',
        'charset': 'utf8mb4'
    }
    conn = pymysql.connect(**config)
    return conn

以上代码中,get_conn() 函数返回一个连接到MySQL数据库的连接对象conn

获取游标

连接好MySQL数据库后,我们需要获取游标对象来执行数据库操作。Python DB API模块提供了cursor()方法来获取游标。

def get_cursor(conn):
    cursor = conn.cursor()
    return cursor

以上代码中,get_cursor(conn)函数返回一个游标对象cursor

我们也可以使用with语句来获取游标对象,此时游标对象随着with语句的结束而关闭。

def get_cursor2(conn):
    with conn.cursor() as cursor:
        return cursor

示例

下面的示例代码展示了如何使用get_conn()get_cursor() 函数来连接MySQL数据库,获取游标对象并执行SQL:

# 连接数据库
conn = get_conn()

# 获取游标对象
cursor = get_cursor(conn)

# 执行SQL
sql = "SELECT * FROM orders"
cursor.execute(sql)

# 获取查询结果
results = cursor.fetchall()

# 打印结果
for row in results:
    print(row)

# 关闭游标
cursor.close()

# 关闭连接
conn.close()

如果使用 get_cursor2() 函数获取游标对象,则代码示例如下:

# 连接数据库
conn = get_conn()

# 获取游标对象
with get_cursor2(conn) as cursor:
    # 执行SQL
    sql = "SELECT * FROM orders"
    cursor.execute(sql)

    # 获取查询结果
    results = cursor.fetchall()

    # 打印结果
    for row in results:
        print(row)

# 关闭连接
conn.close()

通过以上代码示例,我们可以了解到如何连接数据库、获取游标对象、执行SQL语句,并获取结果。