Python通过读取配置文件开发数据库链接脚本工具(统一封装 mysql,mongodb,redis,达梦,人大进仓等主流国内外数据库)

Python通过读取配置文件开发数据库链接脚本工具(统一封装 mysql,mongodb,redis,达梦,人大进仓等主流国内外数据库)

一.为什么要封装工具使用配置文件管理数据库配置文件

1. 数据持久性与安全性

  • 数据持久性:配置文件中的数据在应用程序或系统重启后仍然保留,不会丢失。这对于数据库连接信息(如数据库URL、用户名、密码等)尤为重要,因为它们需要在每次应用程序启动时都被正确加载。
  • 安全性:通过将敏感信息(如数据库密码)存储在配置文件中,并适当限制对这些文件的访问权限,可以提高数据的安全性。此外,还可以采用加密技术来保护配置文件中的敏感数据。

2. 灵活性与可维护性

  • 灵活性:配置文件允许在不修改代码的情况下更改数据库连接信息或其他配置。这对于在不同环境(如开发、测试和生产环境)中部署应用程序时非常有用,因为可以简单地通过更改配置文件来适应不同的数据库设置。
  • 可维护性:当数据库配置发生变化时(如数据库地址更改、密码更新等),只需修改配置文件而无需重新编译或部署应用程序。这大大降低了维护成本和时间。

3. 集中管理与版本控制

  • 集中管理:配置文件通常位于项目的特定位置,便于集中管理和查找。这有助于确保所有开发人员和运维人员都使用相同的配置信息。
  • 版本控制:将配置文件纳入版本控制系统(如Git)可以跟踪配置文件的更改历史,并在需要时回滚到以前的版本。这有助于解决配置错误或恢复旧配置。

4. 便于测试与部署

  • 测试:在测试环境中,可以轻松地更改配置文件以连接到测试数据库,而无需更改代码。这有助于确保测试环境的独立性和准确性。
  • 部署:在部署到生产环境时,只需将包含正确数据库连接信息的配置文件部署到生产服务器即可。这简化了部署过程并减少了出错的可能性。

5. 封装工具的优势

  • 简化操作:封装工具可以隐藏复杂的数据库连接和配置过程,提供简单的接口供应用程序使用。这降低了开发人员的学习成本并提高了开发效率。
  • 提高复用性:通过封装数据库连接和配置的逻辑,可以在多个项目或模块中重用相同的代码和配置,减少了重复劳动。

二.配置文件内容信息 文件名称config.ini

python 复制代码
[mysql]
host = 127.0.0.1
user = root
password = 000000
database = dbname
port = 3306


[mongodb]
host = 127.0.0.1
port = 27017
user =
password =
database = name
collection = table


[redis]
host = localhost
port = 6379
db = 10 # redis一共有16个库这个是选择那个库的代码 正式代码删除这一行注释,默认是0号数据库
password = 123456

三.封装工具代码

py 复制代码
# database.py
import configparser
import pymysql
import redis
from pymongo import MongoClient

# 读取配置文件
config = configparser.ConfigParser()
config.read('config.ini')

# 读取MySQL配置信息
mysql_config = config['mysql']

# 数据库连接函数
def connect_to_mysql():
    return pymysql.connect(
        host=mysql_config['host'],
        user=mysql_config['user'],
        port=int(mysql_config['port']),
        password=mysql_config['password'],
        database=mysql_config['database']
    )

# 查询MySQL数据库函数
def query_mysql(query):
    connection = connect_to_mysql()
    cursor = connection.cursor()
    cursor.execute(query)
    result = cursor.fetchall()
    cursor.close()
    connection.close()
    return result

# 读取Redis配置信息
redis_config = config['redis']

# Redis连接函数
def connect_to_redis():
    return redis.Redis(
        host=redis_config['host'],
        db=int(redis_config['db']),
        port=int(redis_config['port']),
        password=redis_config['password'])

# 查询Redis数据库函数
def query_redis(key):
    connection = connect_to_redis()
    result = connection.get(key)
    connection.close()
    return result

# 读取MongoDB配置信息
mongodb_config = config['mongodb']

# MongoDB连接函数
def connect_to_mongodb():
    client = MongoClient(host=mongodb_config['host'],port= int(mongodb_config['port']),username=mongodb_config['user'],password=mongodb_config['password'])
    db = client[mongodb_config['database']]
    return db

# 查询MongoDB数据库函数
def query_mongodb():
    connection = connect_to_mongodb()
    db = connection[mongodb_config['collection']]
    result = list(db.find({}))
    return result


if __name__ == '__main__':
    connect_to_mysql()
    connect_to_redis()
    connect_to_mongodb()
    print(query_mongodb())

    sql = """select * from file_handle where deleted = 0"""
    print(query_mysql(sql))
相关推荐
zh1570231 小时前
JavaScript中WorkerThreads解决服务端计算瓶颈
jvm·数据库·python
代码AI弗森1 小时前
一文理清楚“算力申请 / 成本测算 / 并发评估”
java·服务器·数据库
蜡台2 小时前
Python包管理工具pip完全指南-----2
linux·windows·python
Mr.朱鹏2 小时前
【Python 进阶 | 第四篇】Psycopg3 + Flask 实现 PostgreSQL CRUD 全流程:从连接池到RESTful接口
python·postgresql·flask·virtualenv·fastapi·pip·tornado
摇滚侠2 小时前
expdp 查看帮助
java·数据库·oracle
流年似水~2 小时前
MCP协议实战:从零搭建一个让Claude能“看见“数据库的工具服务
数据库·人工智能·程序人生·ai·ai编程
2401_871492852 小时前
Vue.js监听器watch利用回调函数处理级联下拉框数据联动
jvm·数据库·python
FreakStudio2 小时前
亲测可用!可本地部署的 MicroPython 开源仿真器
python·单片机·嵌入式·面向对象·并行计算·电子diy·电子计算机
志栋智能3 小时前
超自动化安全:构建智能安全运营的核心引擎
大数据·运维·服务器·数据库·安全·自动化·产品运营
SilentSamsara3 小时前
Python 环境搭建完整指南:从下载安装到运行第一个程序
开发语言·python