python连接mysql数据库、FastAPI、mysql-connector-python

方法工具一、FastAPI

建议使用fast api中的pymysql

python 复制代码
pip3 install fastapi
pip3 install pydantic
pip3 install "uvicorn[standard]"

pip3 中的3是 Python 3 版本的包管理器命令,用于安装和管理 Python 3 版本的第三方库。在某些系统中,同时安装了 Python 2 和 Python 3,为了区分两个版本的 pip 命令,Python 3 版本的 pip 命令被命名为 pip3。这样可以确保在命令行中使用 pip3 命令时,安装的库将会与 Python 3 版本关联。

python 复制代码
from fastapi import FastAPI
#项目名称 = FastAPI()
#如:link = FastAPI()
@link.get("/")
import pymysql
db = pymysql.connect(host='1.0.0.2',
            user='root',
            password='CSDN-jingyu1610',
            database='mysql',charset='utf8',
            autocommit=True,
            cursorclass=pymysql.cursors.DictCursor)
python 复制代码
#解释
db = pymysql.connect(host='数据库IP地址',
                    user='数据库',
                    password='登录mysql数据库的密码,注意不是登录linux系统的密码',
                    database='连接的数据库',
                    charset='utf8',表示使用 UTF-8 字符集进行数据的编码和解码。
                    autocommit=True,:表示开启自动提交模式。在自动提交模式下,每个 SQL 语句执行完成后会自动进行提交,不需要手动调用 commit() 方法。
                    cursorclass=pymysql.cursors.DictCursor):表示使用字典类型的游标。使用字典类型的游标可以方便地通过列名来访问查询结果,而不是通过列索引。

使用 autocommit=Truecursorclass=pymysql.cursors.DictCursor 参数可以实现以下功能:

  • 开启自动提交,减少手动提交的操作。
  • 使用字典类型的游标,方便使用列名来操作查询结果。

详细解释charset='utf8'

表示使用 UTF-8 字符集进行数据的编码和解码。

UTF-8 是一种可变长度的字符编码方式,可以表示世界上几乎所有的字符。使用 UTF-8 编码可以保证数据在传输和存储时,不会出现字符乱码的问题。

设置 charset='utf8' 参数后,pymysql 在连接数据库时会将客户端和服务器之间的通信字符集设置为 UTF-8,这样可以保证数据库和应用程序之间的数据能够正确地进行编码和解码。

方法工具二、mysql-connector-python

mysql-connect-python工具不属于FastAPI当中。

要在Python中连接MySQL数据库,你可以使用一个称为mysql-connector-python的库。

首先,确保你已经安装了这个库。你可以使用以下命令进行安装:

如果不知道可以使用pip -V查看版本。

一旦安装了库,你可以使用以下代码片段来连接到MySQL数据库:

确保将your_usernameyour_passwordyour_hostyour_databaseyour_table替换为你的实际值。这样你就可以连接到MySQL数据库并执行查询了。

cmake 复制代码
pip3 install mysql-connector-python
 
python 复制代码
import mysql.connector

# 创建数据库连接
cnx = mysql.connector.connect(user='your_username', 
                              password='your_password',
                              host='your_host', 
                              database='your_database')

方法一、
# 执行SQL查询
mycursor.execute("SELECT * FROM yourtablename")

# 获取查询结果
myresult = mycursor.fetchall()
for x in myresult:
    print(x)
#关闭连接在完成所有数据库操作后,应关闭游标和数据库连接
mycursor.close()
mydb.close()

方法二、
# 创建游标对象,用于执行SQL查询
cursor = cnx.cursor()

# 执行SQL查询
query = 'SELECT * FROM your_table'
cursor.execute(query)

# 获取查询结果
for row in cursor:
    print(row)

# 关闭游标和数据库连接
cursor.close()
cnx.close()
 

检查连接

您可以通过检查mydb.is_connected()来验证是否成功连接到数据库。

python 复制代码
if mydb.is_connected():
    print("成功连接到MySQL数据库")

注意事项

  • 确保您的MySQL服务正在运行,并且您有正确的访问权限。
  • 根据您的数据库设置,数据库地址、端口等信息可能有所不同。
  • 在生产环境中,不要在代码中硬编码数据库凭据,应该使用配置文件或环境变量来管理这些敏感信息。
相关推荐
喝醉酒的小白8 分钟前
数据库参数备份
数据库
小徍12 分钟前
MySQL 8.0特性-自增变量的持久化
数据库·mysql
糖豆大将军13 分钟前
Mysql个人八股总结
数据库·oracle
YRr YRr21 分钟前
Ubuntu20.04 解决一段时间后键盘卡死的问题 ubuntu
linux·数据库·ubuntu
2401_8576363931 分钟前
实时数据流的革命:分布式数据库的挑战与实践
数据库·分布式
冰红茶兑滴水1 小时前
MySQL 表的约束
数据库·mysql
cui_win1 小时前
Redis高可用-Cluster(集群)
数据库·redis·bootstrap
小五Z1 小时前
MySql--增删改查表设计总结
数据结构·数据库·mysql
锐策2 小时前
〔 MySQL 〕数据类型
数据库·mysql
Firechou2 小时前
SpringBoot+MyBatis+MySQL的Point实现范围查找
spring boot·mysql·mybatis·point·范围查找·附近查找