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实现比较两个文件夹中代码变化的方法
Jul 10 Python
Python实现模拟登录及表单提交的方法
Jul 25 Python
python实现应用程序在右键菜单中添加打开方式功能
Jan 09 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
python 缺失值处理的方法(Imputation)
Jul 02 Python
python爬虫之爬取百度音乐的实现方法
Aug 24 Python
python json 递归打印所有json子节点信息的例子
Feb 27 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
Mar 28 Python
Django values()和value_list()的使用
Mar 31 Python
Python求解排列中的逆序数个数实例
May 03 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
Sep 29 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 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
hessian 在PHP中的使用介绍
2010/12/13 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
php流量统计功能的实现代码
2012/09/29 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
校园招聘策划书
2014/01/09 职场文书
演讲稿的写法
2014/05/19 职场文书
python中取整数的几种方法
2021/11/07 Python