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套接字流重定向实例汇总
Mar 03 Python
python实现批量解析邮件并下载附件
Jun 19 Python
Python 判断奇数偶数的方法
Dec 20 Python
我喜欢你 抖音表白程序python版
Apr 07 Python
python tools实现视频的每一帧提取并保存
Mar 20 Python
python celery分布式任务队列的使用详解
Jul 08 Python
Python queue队列原理与应用案例分析
Sep 27 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
Oct 12 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
Jul 21 Python
Python 解析简单的XML数据
Jul 24 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
Jan 15 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之XML转数组函数的详解
2013/06/07 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
jquery做个日期选择适用于手机端示例
2017/01/10 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
Python中设置变量访问权限的方法
2015/04/27 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
python实现字典嵌套列表取值
2019/12/16 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
超市业务员岗位职责
2013/12/05 职场文书
家佳咖啡店创业计划书
2013/12/27 职场文书
办理居住证介绍信
2014/01/15 职场文书
统计学教授推荐信
2014/09/18 职场文书
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android