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之玩转字符串(2)
Sep 14 Python
在MAC上搭建python数据分析开发环境
Jan 26 Python
使用python绘制常用的图表
Aug 27 Python
python编程实现希尔排序
Apr 13 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
python微信公众号之关注公众号自动回复
Oct 25 Python
创建Django项目图文实例详解
Jun 06 Python
python爬虫豆瓣网的模拟登录实现
Aug 21 Python
python中如何实现将数据分成训练集与测试集的方法
Sep 13 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 Python
python复合条件下的字典排序
Dec 18 Python
python套接字socket通信
Apr 01 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加密解密函数代码
2013/06/19 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
php实现简单四则运算器
2020/11/29 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
js实现随机数小游戏
2019/06/28 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
python 输出一个两行字符的变量
2009/02/05 Python
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
Python创建或生成列表的操作方法
2019/06/19 Python
python 随机森林算法及其优化详解
2019/07/11 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
Python3监控疫情的完整代码
2020/02/20 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
《秋姑娘的信》教学反思
2014/02/28 职场文书
环境科学专业求职信
2014/08/04 职场文书
2015年工会工作总结
2015/03/30 职场文书
护士工作心得体会
2016/01/25 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python