查看原文
其他

如何使用Python连接MariaDB

21CTO 21CTO 2023-01-28


我们在本文讲解使用Python连接MariaDB,管理其中之数据,包括服务器,MaxScale以及SkySQL


准备和安装


可以在官网上下载MariaDB Server。具体请参考手册。


MariaDB通过MariaDB Connector为Python提供支持,也可以通过Python Package Index获得支持。


安装方法,请使用如下命令:


pip install mariadb


连接到MariaDB


1 首先导入模块

import mariadb


2 使用connect()函数与数据库连接。包括一系列参数,如用户名,主机名,密码。


3 使用cursor()在连接中检索游标。


游标为开发者提供了与服务器交互的界面,例如运行SQL查询和管理事务。


# Module Imports


import mariadb

import sys 


# Connect to MariaDB Platform

try: conn = mariadb.connect( 

    user="db_user", 

    password="db_user_passwd", 

    host="192.0.2.1", 

    port=3306, 

    database="employees" 

) except mariadb.Error as e: 

    print(f"Error connecting to MariaDB Platform: {e}") 

    sys.exit(1) 

# Get Cursor 

cur = conn.cursor()


接收数据


初始化数据库连接后,就可以处理数据。第一件事可以尝试从数据库检索信息。如下查询代码:



cur.execute(

    "SELECT first_name,last_name FROM employees WHERE first_name=?", 

    (some_name,))


MariaDB Connector使用prepare语句,将元组中的值插入到?号位置,这样更为安全。


查询字段:

# Print Result-set

for (first_name, last_name) in cur: 

    print(f"First Name: {first_name}, Last Name: {last_name}")


每行从游标作为元组传递,该元组包含SELECT中的字段。


新增数据


execute()函数是执行INSERT语句的方法,向表中添加新的行:


cursor.execute(

    "INSERT INTO employees (first_name,last_name) VALUES (?, ?)", 

    (first_name, last_name))


默认情况下,为自动提交。如果想手动管理事务,可以通过autocommit的属性设置为false来禁用它。


# Disable Auto-Commit

conn.autocommit = False


这样,可以使用commit()和rollback()方法来提交和回滚事务。在MariaDB中,使用Innodb存储引擎可以在一张表中执行多个并发事务,不需要手动锁定。


捕捉异常


如果想在执行SQL时捕获异常,可以使用error类:


try: 

    cursor.execute("some MariaDB query"))

except mariadb.Error as e: 

    print(f"Error: {e}")


完成数据库操作后,确保关闭,避免打开未使用的连接。


conn.close()


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存