FastAPI 链接 MySQL
MySQL 是一种常用的开源关系型数据库管理系统,而 FastAPI 是一个高性能的 Web 框架,它使用 Python 的异步特性和类型注解来使得应用的开发更加高效。在本文中,我们将介绍如何使用 FastAPI 来连接 MySQL 数据库,并进行相关的数据库操作。
安装依赖
首先,我们需要安装一些必要的依赖包。在命令行中执行以下命令来安装 FastAPI 和相关的 MySQL 驱动:
pip install fastapi
pip install uvicorn[standard]
pip install pymysql
配置数据库连接
在开始之前,我们需要先创建一个 MySQL 数据库,并获取到数据库的连接信息,如主机名、端口、用户名、密码和数据库名称等。我们可以将这些信息配置在一个 .env 文件中,然后使用 Python 的 dotenv 库来读取这些配置信息。创建一个 .env 文件并添加以下内容:
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=123456
DB_DATABASE=mydb
然后,我们可以在 Python 代码中使用以下方式来读取这些配置信息:
from dotenv import load_dotenv
import os
load_dotenv()
DB_HOST = os.getenv("DB_HOST")
DB_PORT = os.getenv("DB_PORT")
DB_USER = os.getenv("DB_USER")
DB_PASSWORD = os.getenv("DB_PASSWORD")
DB_DATABASE = os.getenv("DB_DATABASE")
连接数据库
接下来,我们需要使用 Python 的 MySQL 驱动程序来连接数据库。我们可以使用 pymysql 库来实现这个功能。在 Python 代码中,我们可以这样来连接数据库:
import pymysql
connection = pymysql.connect(
host=DB_HOST,
port=int(DB_PORT),
user=DB_USER,
password=DB_PASSWORD,
database=DB_DATABASE,
cursorclass=pymysql.cursors.DictCursor
)
这里,我们使用了 pymysql.connect 函数来创建一个数据库连接对象,并传入了一些连接参数,如主机名、端口、用户名、密码和数据库名称等。
数据库操作
现在,我们已经成功连接到了 MySQL 数据库,接下来我们可以进行相关的数据库操作,如查询、插入、更新和删除等。
查询数据
以下是一个查询数据的示例,我们可以使用 SQL 语句来执行查询操作:
try:
with connection.cursor() as cursor:
# SQL 查询语句
sql = "SELECT * FROM users"
# 执行 SQL 查询
cursor.execute(sql)
# 获取查询结果
result = cursor.fetchall()
# 打印查询结果
for row in result:
print(row)
finally:
connection.close()
插入数据
以下是一个插入数据的示例,我们可以使用 SQL 语句来执行插入操作:
try:
with connection.cursor() as cursor:
# SQL 插入语句
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
# 插入数据
cursor.execute(sql, ("John Doe", 30))
# 提交事务
connection.commit()
finally:
connection.close()
更新数据
以下是一个更新数据的示例,我们可以使用 SQL 语句来执行更新操作:
try:
with connection.cursor() as cursor:
# SQL 更新语句
sql = "UPDATE users SET age = %s WHERE name = %s"
# 更新数据
cursor.execute(sql, (35, "John Doe"))
# 提交事务
connection.commit()
finally:
connection.close()
删除数据
以下是一个删除数据的示例,我们可以使用 SQL 语句来执行删除操作:
try:
with connection.cursor() as cursor:
# SQL 删除语句
sql = "DELETE FROM users WHERE name = %s"
# 删除数据
cursor.execute(sql, ("John Doe",))
# 提交事务
connection.commit()
finally:
connection.close()
结论
通过以上步骤,我们已经成功使用 FastAPI 来连接 MySQL 数据库,并进行了相关的数据库操作。当然,这只是一个简单的示例,实际应用中可能还需要更复杂的操作,如条件查询、分页查询等,但是这些操作的原理都是相似的。
FastAPI 提供了一个强大而灵活的框架来开发 Web 应用程序,并且可以与各种数据库进行连接