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

server/2024/10/22 15:28:08/

mysqlmongodbredis_0">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

三.封装工具代码

# 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 resultif __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))

http://www.ppmy.cn/server/107133.html

相关文章

网络安全系统性学习路线「全文字详细介绍」

🤟 基于入门网络安全打造的:👉黑客&网络安全入门&进阶学习资源包 一、基础与准备 网络安全行业与法规 想要从事网络安全行业,必然要先对行业建立一个整体的认知,了解网络安全对于国家和社会的作用&#xff0…

将OpenGL渲染的结果保存为图片

https://blog.csdn.net/u013412391/article/details/120565095 //

每日一题,在线精讲 —— 零基础入门FPGA

F学社每日一题新活动上线! 你可能是正在学习电子工程、计算机科学与技术等与FPGA相关的学生;可能是尝试转行至FPGA的工程师;也可能是对FPGA充满兴趣的新手……但无论你是谁,我们知道你正在探索FPGA的路上。 FPGA作为硬件设计领域…

【IC设计】跨时钟异步处理系列——单比特跨时钟

文章目录 建立时间和保持时间单比特信号的跨时钟处理慢时钟域的信号传输到快时钟域打两拍 快时钟域的信号传输到慢时钟域方案一 脉冲展宽同步 (打拍打拍,进行或)代码原理图 方案二 脉冲电平检测双触发器同步边沿检测代码原理图 建立时间和保持时间 所谓的建立时间或…

VS2022搭建QT及OpenCV环境

1.背景 由于之前VS2022和QT已经安装好了,所以本次的任务主要是下载OpenCV以及在VS2022上集成QT和OpenCV。关于VS2022和QT的安装大家可以参考别的博客。QT选择的版本是6.2.4,OpenCV版本为3.4.5,Windows版本为Win11。 2.OpenCV下载 OpenCV官…

Spring Web MVC入门

目录 一、建立连接(ResquestMapping- 实现URL路由映射) 二、发送请求 1、传递单个参数 2、传递多个参数 3、传递对象 4、后端参数重命名(后端参数映射)(RequestParam) 5、非必传参数的设置&#xff0…

前端Html5/Css3—div盒子模型

文章目录 第六章 盒子模型6.1 border边框6.2 border-width粗细6.3 border-style边框样式6.4 border简写6.5 margin外边距6.6 padding内边距6.7 盒子模型尺寸6.8 box-sizing6.9 border-radius圆角边框6.9.1 制作圆形6.9.2 半圆6.9.3 四分之一圆 6.10 box-shadow盒子阴影 第六章 …

掀起社交娱乐新浪潮!AI如何应用到短视频APP?

随着人工智能技术的迅速发展和全球社交媒体用户的增长,AI视频生成应用正逐渐成为短视频社交媒体中的关键工具。AI工具不仅可以提高内容的创造效率,还能为用户带来全新的互动体验。 人工智能(AI)已经成为我们日常生活和工作中不可或…