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每隔N秒运行指定函数的方法
Mar 16 Python
python在非root权限下的安装方法
Jan 23 Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 Python
python之django母板页面的使用
Jul 03 Python
解决tensorflow模型参数保存和加载的问题
Jul 26 Python
python模糊图片过滤的方法
Dec 14 Python
python中wheel的用法整理
Jun 15 Python
python实现移动木板小游戏
Oct 09 Python
python 怎样进行内存管理
Nov 10 Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 Python
Python requests用法和django后台处理详解
Mar 19 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/14 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
PHP实现的大文件切割与合并功能示例
2018/04/10 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
Python运维开发之psutil库的使用详解
2018/10/18 Python
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
实习销售业务员自我鉴定
2013/09/21 职场文书
上课迟到检讨书
2014/02/19 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
2021/10/16 Python