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进行稳定可靠的文件操作详解
Dec 31 Python
Python下singleton模式的实现方法
Jul 16 Python
Python实现冒泡,插入,选择排序简单实例
Aug 18 Python
python实现ID3决策树算法
Dec 20 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
python使用pycharm环境调用opencv库
Feb 11 Python
Python下简易的单例模式详解
Apr 08 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 Python
Python re正则表达式元字符分组()用法分享
Feb 10 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
Jun 01 Python
python实现从ftp上下载文件的实例方法
Jul 19 Python
python实现高效的遗传算法
Apr 07 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中4种常用的抓取网络数据方法
2015/06/04 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
Javascript 两个窗体之间传值实现代码
2009/09/25 Javascript
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
jQuery实现类似老虎机滚动抽奖效果
2015/08/06 Javascript
easyui validatebox验证
2016/04/29 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
小程序实现列表多个批量倒计时
2021/01/29 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
微信小程序webSocket的使用方法
2020/02/20 Javascript
python访问纯真IP数据库的代码
2011/05/19 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
python中的colorlog库使用详解
2019/07/05 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
税务专业毕业生自荐信
2013/11/10 职场文书
公司出纳岗位职责
2013/12/07 职场文书
地理教师岗位职责
2014/03/16 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
建设投标担保书
2014/05/13 职场文书
网站推广策划方案
2014/06/04 职场文书
门店店长岗位职责
2015/04/14 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
MySQL约束超详解
2021/09/04 MySQL
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android
Nginx如何配置根据路径转发详解
2022/07/23 Servers