You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python连接MySQL时如何创建并导入自定义模块隐藏敏感凭据

实现方案

1. 编写自定义数据库模块

首先在项目目录下新建mysql_utils.py文件,统一封装数据库连接逻辑和敏感凭据:

import pymysql

# 所有敏感配置统一存放在该模块内部,不对业务代码暴露
MYSQL_CONFIG = {
    "database": "byt",
    "user": "root",
    "password": "admin",
    "host": "localhost",
    "port": 3306
}

def get_db_connection(autocommit=False):
    """
    返回MySQL连接对象和游标对象
    可通过autocommit参数设置是否自动提交事务
    """
    conn = pymysql.connect(**MYSQL_CONFIG, autocommit=autocommit)
    cursor = conn.cursor()
    return conn, cursor

如果使用Git做版本管理,直接把mysql_utils.py加入.gitignore文件,避免敏感配置被提交到远程仓库。

2. 业务代码导入调用

在你的业务代码文件中直接导入上述模块的函数即可使用,不需要再写任何敏感凭据:

from mysql_utils import get_db_connection

# 直接调用获取连接和游标
db_new1, cursor_new1 = get_db_connection()

# 后续正常执行SQL操作即可
# 示例:cursor_new1.execute("SELECT VERSION()")
# 操作完成后记得关闭资源
# cursor_new1.close()
# db_new1.close()

可选进阶优化

如果不想把凭据直接写在Python模块文件里,可以配合.env配置文件实现完全解耦:

  • 先安装依赖库:pip install python-dotenv
  • 项目根目录新建.env文件,写入所有敏感配置:
    MYSQL_DB=byt
    MYSQL_USER=root
    MYSQL_PWD=admin
    MYSQL_HOST=localhost
    MYSQL_PORT=3306
    
  • 修改mysql_utils.py代码,从.env读取配置:
    import pymysql
    import os
    from dotenv import load_dotenv
    
    # 加载.env文件配置
    load_dotenv()
    
    MYSQL_CONFIG = {
        "database": os.getenv("MYSQL_DB"),
        "user": os.getenv("MYSQL_USER"),
        "password": os.getenv("MYSQL_PWD"),
        "host": os.getenv("MYSQL_HOST"),
        "port": int(os.getenv("MYSQL_PORT"))
    }
    
    def get_db_connection(autocommit=False):
        conn = pymysql.connect(**MYSQL_CONFIG, autocommit=autocommit)
        cursor = conn.cursor()
        return conn, cursor
    
  • 把.env文件加入.gitignore,这种方式的优势是配置和代码完全分离,mysql_utils.py本身可以正常提交到版本仓库。

内容的提问来源于stack exchange,提问作者Yan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:39:01