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程序
Apr 04 Python
python遍历类中所有成员的方法
Mar 18 Python
Python中zfill()方法的使用教程
May 20 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
Python学习教程之常用的内置函数大全
Jul 14 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
使用python绘制二维图形示例
Nov 22 Python
python运用pygame库实现双人弹球小游戏
Nov 25 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
Jun 24 Python
Python基于Faker假数据构造库
Nov 30 Python
python 用pandas实现数据透视表功能
Dec 21 Python
python 详解turtle画爱心代码
Feb 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 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
PHP 反向排序和随机排序代码
2010/06/30 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
JavaScript中0和""比较引发的问题
2016/05/26 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
详解Python中的__init__和__new__
2014/03/12 Python
Python生成随机MAC地址
2015/03/10 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
pytorch SENet实现案例
2020/06/24 Python
python开发入门——列表生成式
2020/09/03 Python
利用python 下载bilibili视频
2020/11/13 Python
django中ImageField的使用详解
2020/12/21 Python
python中操作文件的模块的方法总结
2021/02/04 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
会计应届生的自荐信
2013/12/13 职场文书
关于建议书的格式范文
2014/05/20 职场文书
网络营销策划方案
2014/06/04 职场文书
环保志愿者活动总结
2014/06/27 职场文书
异地恋情人节寄语
2015/02/28 职场文书
小学音乐课教学反思
2016/02/18 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书