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编程模板汇总
Feb 12 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
Mar 16 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
Python子类继承父类构造函数详解
Feb 19 Python
Python网络爬虫之爬取微博热搜
Apr 18 Python
python处理大日志文件
Jul 23 Python
python 实现手机自动拨打电话的方法(通话压力测试)
Aug 08 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
Pymysql实现往表中插入数据过程解析
Jun 02 Python
matplotlib基础绘图命令之bar的使用方法
Aug 13 Python
python利用appium实现手机APP自动化的示例
Jan 26 Python
在python中实现导入一个需要传参的模块
May 12 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的array_multisort()使用方法介绍
2012/05/16 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
php并发加锁示例
2016/10/17 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
基于three.js实现的3D粒子动效实例代码
2019/04/09 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
Python中的类学习笔记
2014/09/23 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
走进敬老院活动总结
2014/07/10 职场文书
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
房屋出售授权委托书
2014/10/12 职场文书
扬州个园导游词
2015/02/06 职场文书
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫