python 动态渲染 mysql 配置文件的示例


Posted in Python onNovember 20, 2020

背景

前段时间写了一个自动化安装 MySQL 的程序,其中有一个环节就是动态的渲染 my.cnf 文件;总的解决方案就是像 Django 渲染 html 页面一样,用渲染模板的方式来解决。

[mysqld]
basedir = {{basedir}}
datadir = {{datadir}}
port  = {{port}}
user  = {{user}}

python 动态渲染 mysql 配置文件的示例

代码实现

我在渲染引擎的选择上使用了 jinja2 这个模板引擎,去掉其它逻辑一个最小化的代码如下。

#!/usr/bin/env python3

from jinja2 import Environment,FileSystemLoader

def render_mysql_config_file():
  #通过文件系统加载器,加载当前目录下的 my.cnf.jinja 模板文件
  env = Environment(loader=FileSystemLoader(searchpath='./'))
  tmpl = env.get_template('my.cnf.jinja')
  #给要渲染的参数指定值
  cnfs = {
    'basedir': '/usr/local/mysql/',
    'datadir': '/database/mysql/data/3306/',
    'port': 3306,
    'user'; 'mysql3306'
  }

  tmpl.globals=cnfs
  #不保存到 /etc/my.cnf 了,直接输出到 stdout
  print(tmpl.render())

if __name__ == "__main__":
  render_mysql_config_file()

运行效果如下

python3 cnfs.py
[mysqld]
basedir = /usr/local/mysql/
datadir = /database/mysql/data/3306/
port  = 3306
user  = mysql3306

总结

通过模板引擎渲染 my.cnf 只要专参数就行了,非常的方便。

以上就是python 动态渲染 mysql 配置文件的示例的详细内容,更多关于python 动态渲染配置文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python获取文件扩展名的方法
Jul 06 Python
Python下Fabric的简单部署方法
Jul 14 Python
python中获得当前目录和上级目录的实现方法
Oct 12 Python
Python实现Event回调机制的方法
Feb 13 Python
深入解析python中的实例方法、类方法和静态方法
Mar 11 Python
python中update的基本使用方法详解
Jul 17 Python
django用户登录验证的完整示例代码
Jul 21 Python
PYTHON发送邮件YAGMAIL的简单实现解析
Oct 28 Python
python图形开发GUI库pyqt5的基本使用方法详解
Feb 14 Python
如何理解python面向对象编程
Jun 01 Python
Pycharm调试程序技巧小结
Aug 08 Python
浅谈Python xlwings 读取Excel文件的正确姿势
Feb 26 Python
Python paramiko使用方法代码汇总
Nov 20 #Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 #Python
python使用requests库爬取拉勾网招聘信息的实现
Nov 20 #Python
python爬取天气数据的实例详解
Nov 20 #Python
python爬取招聘要求等信息实例
Nov 20 #Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 #Python
Python getsizeof()和getsize()区分详解
Nov 20 #Python
You might like
PHP 中检查或过滤IP地址的实现代码
2011/11/27 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
键盘控制事件应用教程大全
2006/11/24 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
js 上传图片预览问题
2010/12/06 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
Python numpy 常用函数总结
2017/12/07 Python
查看Django和flask版本的方法
2018/05/14 Python
python中metaclass原理与用法详解
2019/06/25 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
Python关于反射的实例代码分享
2020/02/20 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
仓库管理专业个人自我评价范文
2013/11/11 职场文书
正规的求职信范文分享
2013/12/11 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
Nginx配置根据url参数重定向
2022/04/11 Servers
python双向链表实例详解
2022/05/25 Python