温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么将Python程序连接到MariaDB

发布时间:2022-01-26 09:14:33 来源:亿速云 阅读:216 作者:iii 栏目:开发技术

本文小编为大家详细介绍“怎么将Python程序连接到MariaDB”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么将Python程序连接到MariaDB”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

您可以使用流行的编程语言 Python 来管理存储在 MariaDB 平台中的数据,包括 MariaDB Server、MariaDB MaxScale 和 MariaDB SkySQL。

准备和安装

您将需要访问 MariaDB 服务器。我们推荐以下两种方法之一:

1. 在您自己的硬件上下载 MariaDB 服务器。有关文档中的分步说明,请参阅 部署指南。

2. 使用 MariaDB SkySQL 部署 MariaDB 平台,其中包括 MariaDB Enterprise Server。请参阅我们的文档以在几分钟内启动数据库服务。

如果您想尝试 Python 与 MariaDB 的集成,但没有可使用的数据库,则可以使用流行的员工示例数据库。

MariaDB 通过 MariaDB Connector/Python 提供 Python 支持,可通过 Python Package Index 获得。要安装,请使用 PIP:

Shell:

$ pip3 install mariadb

连接到 MariaDB 服务器

1. 要使用 MariaDB Connector/Python 连接到 MariaDB 服务器,您必须先导入它,就像导入任何其他模块一样: import mariadb

2.接下来,使用connect()函数建立数据库连接。该函数采用一系列命名参数来指定您的客户端凭据,例如用户名、主机、密码。如果您在 SkySQL 上使用数据库实例,此信息将在您的数据库实例的服务详细信息页面中提供。

该连接为您提供了一个界面,用于配置您的应用程序与 MariaDB 服务器的连接。

3. 最后,调用cursor()连接上的方法来检索游标。

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

Python:

# 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()

检索数据

有了初始代码后,您就可以开始处理数据了。您应该做的第一件事是尝试从数据库中检索信息。以下是针对员工数据库的查询代码:

Python:

cur.execute(
    "SELECT first_name,last_name FROM employees WHERE first_name=?", 
    (some_name,))

MariaDB 连接器/Python 使用准备好的语句,清理元组中的值并将其插入问号 (?) 的位置。在处理用户提供的信息时,这比通过 f 字符串或格式说明符插入更安全。

查询结果存储在游标对象的列表中。要查看结果,您可以在光标上循环。

Python:

# Print Result-set
for (first_name, last_name) in cur: 
    print(f"First Name: {first_name}, Last Name: {last_name}")

每一行作为包含SELECT语句中列的元组从游标传递。

添加数据

execute()对INSERT语句使用相同的方法,您可以向表中添加行。

Python:

cursor.execute(
    "INSERT INTO employees (first_name,last_name) VALUES (?, ?)", 
    (first_name, last_name))

默认情况下,MariaDB Connector/Python 启用自动提交。如果您想手动管理您的事务,仅在您准备好时提交,您可以通过将autocommit连接上的属性设置为 False来禁用它。

Python:

# Disable Auto-Commit
conn.autocommit = False

完成此操作后,您可以使用commit()和rollback()方法提交和回滚事务。MariaDB Server 允许您在使用 InnoDB 存储引擎时在同一个表上运行多个并发事务而无需锁定它。

在插入行时,您可能希望在生成最后插入的行时找到它的主键,就像自动递增的值一样。您可以使用lastrowid()光标上的方法检索它。

更新和删除行与插入行类似。唯一的区别在于所使用的查询。

捕捉异常

对于您的任何 SQL 操作(查询、更新、删除或插入记录),您都应该尝试捕获错误,以便您可以验证您的操作是否按预期执行,并且您在出现任何问题时都知道。要捕获错误,请使用 Error 类:

Python:

try: 
    cursor.execute("some MariaDB query"))
except mariadb.Error as e: 
    print(f"Error: {e}")

如果try上述代码的子句中的查询失败,MariaDB Server 会返回一个 SQL 异常,该异常在except 中被捕获并打印到 stdout。当您使用数据库时,这种捕获异常的编程最佳实践尤其重要,因为您需要确保信息的完整性。

完成对数据库的使用后,请确保关闭此连接,以避免将未使用的连接保持打开状态,从而浪费资源。您可以使用以下close()方法关闭连接:

Python:

# Close Connection
conn.close()

如果您使用 SkySQL 进行试验,您可能需要删除您的数据库服务以停止产生费用。

完整的脚本

这就是将 Python 代码连接到 MariaDB 数据库是多么简单和直接。以下是完整得脚本的代码:

Python:

#!/usr/bin/python 
import mariadb 
conn = mariadb.connect( 
    user="db_user", 
    password="db_user_passwd", 
    host="localhost", 
    database="employees"
) 
cur = conn.cursor() 
#retrieving information 
some_name = "Georgi" 
cur.execute("SELECT first_name,last_name FROM employees WHERE first_name=?", (some_name,))
for first_name, last_name in cur: 
    print(f"First name: {first_name}, Last name: {last_name}") 
#insert information
try: 
    cur.execute("INSERT INTO employees (first_name,last_name) VALUES (?, ?)", ("Maria","DB"))
except mariadb.Error as e: 
    print(f"Error: {e}") 
conn.commit() 
print(f"Last Inserted ID: {cur.lastrowid}") 
conn.close()

读到这里,这篇“怎么将Python程序连接到MariaDB”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI