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))
相关推荐
马克Markorg4 小时前
常见的向量数据库和具有向量数据库能力的数据库
数据库
冷雨夜中漫步4 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴5 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再5 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
喵手6 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
Coder_Boy_6 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2501_944934736 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy7 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
肖永威8 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos
TechWJ8 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto