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 相关文章推荐
Python3 能振兴 Python的原因分析
Nov 28 Python
python3编码问题汇总
Sep 06 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
Python matplotlib画图实例之绘制拥有彩条的图表
Dec 28 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
May 10 Python
Python倒排索引之查找包含某主题或单词的文件
Nov 13 Python
浅谈Python 钉钉报警必备知识系统讲解
Aug 17 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
详解分布式系统中如何用python实现Paxos
May 18 Python
基于Python实现流星雨效果的绘制
Mar 18 Python
python标准库ElementTree处理xml
May 20 Python
Python使用Web框架Flask开发项目
Jun 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
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
php数组键名技巧小结
2015/02/17 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
yii2实现 "上一篇,下一篇" 功能的代码实例
2017/02/04 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
PDO::prepare讲解
2019/01/29 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
js中将多个语句写成一个语句的两种方法小结
2007/12/08 Javascript
JavaScript 继承详解(二)
2009/07/13 Javascript
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
javascript的内存管理详解
2013/08/07 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
python正则表达式的使用
2017/06/12 Python
Python的信号库Blinker用法详解
2020/12/31 Python
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
金融系应届毕业生求职信
2014/05/26 职场文书
安全生产培训心得体会
2016/01/18 职场文书
2019年工作总结范文
2019/05/21 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL