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实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
解决Linux系统中python matplotlib画图的中文显示问题
Jun 15 Python
python编程培训 python培训靠谱吗
Jan 17 Python
Python实现的多进程和多线程功能示例
May 29 Python
Python中return self的用法详解
Jul 27 Python
python word转pdf代码实例
Aug 16 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
Python3 搭建Qt5 环境的方法示例
Jul 16 Python
python实现简单贪吃蛇游戏
Sep 29 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
Mar 03 Python
Matlab如何实现矩阵复制扩充
Jun 02 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/07/02 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
jquery 笔记 事件
2011/11/02 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
js读取本地文件的实例
2017/12/22 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
简单了解什么是神经网络
2017/12/23 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
无工作经验者个人求职信范文
2013/12/22 职场文书
舞蹈教师自荐信
2014/01/27 职场文书
网络信息安全承诺书
2014/03/26 职场文书
爱情保证书
2015/01/17 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
诚实守信主题班会
2015/08/13 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python