一、 Pip换源
可以查看文章路径
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
二、 解耦
1.解耦思想
具体查看文章python解耦重构,提高程序维护性
https://editor.csdn.net/md/?articleId=140161169
- mysql 连接解耦
主要实现方式为mysql配置项的提取,其中mysql 安装方式查看mysql8.0.19安装zip版本
https://editor.csdn.net/md/?articleId=140093551。
三、解耦实现
- Pip换源安装库
pip install mysql-connector-python
pip install python-dotenv
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mysql-connector-python
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-dotenv
- 配置文件 env 版本
配置文件填写,a.env。
具体参数 DB_HOST ip , DB_DATABASE DATABASE 名称 , DB_USER 用户名 ,DB_PASSWORD 密码。
DB_HOST=127.0.0.1
DB_DATABASE=customer_feedback
DB_USER=root
DB_PASSWORD=*******
- 配置文件 .ini 版本
如果想用.ini结尾的可以查看,文章python解耦重构,提高程序维护性。
4 .python 代码实现
解耦前
connection = mysql.connector.connect(
host='your_host', # 数据库主机地址
database='your_database', # 数据库名称
user='your_user', # 数据库用户名
password='your_password' # 数据库密码
)
解耦后
db_host = os.getenv('DB_HOST')
db_database = os.getenv('DB_DATABASE')
db_user = os.getenv('DB_USER')
db_password = os.getenv('DB_PASSWORD')
print(db_host)
# 连接数据库
connection = mysql.connector.connect(
host=db_host,
database=db_database,
user=db_user,
password=db_password
)
全部代码实现(mysql 8.0版本使用)
import mysql.connector
from mysql.connector import Error
import os
from dotenv import load_dotenv
# 加载.env文件
load_dotenv('a.env',verbose=True)
def read_data_from_mysql():
try:
# 连接数据库
# connection = mysql.connector.connect(
# host='your_host', # 数据库主机地址
# database='your_database', # 数据库名称
# user='your_user', # 数据库用户名
# password='your_password' # 数据库密码
# )
# 从环境变量中读取数据库连接信息
db_host = os.getenv('DB_HOST')
db_database = os.getenv('DB_DATABASE')
db_user = os.getenv('DB_USER')
db_password = os.getenv('DB_PASSWORD')
print(db_host)
# 连接数据库
connection = mysql.connector.connect(
host=db_host,
database=db_database,
user=db_user,
password=db_password
)
if connection.is_connected():
db_Info = connection.get_server_info()
print(f"Successfully connected to MySQL Server version {db_Info}")
# 创建游标对象
cursor = connection.cursor()
# 执行查询
query = "SELECT * FROM feedback_2024" # 更换为你的表名
cursor.execute(query)
# 获取所有记录列表
records = cursor.fetchall()
print("Total number of rows in table: ", cursor.rowcount)
print("\nPrinting each row")
for row in records:
print(row)
except Error as e:
print(f"Error reading data from MySQL: {e}")
finally:
if (connection.is_connected()):
cursor.close()
connection.close()
print("MySQL connection is closed")
# 调用函数
read_data_from_mysql()