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解释器相关安装方法
Oct 12 Python
Python语法快速入门指南
Oct 12 Python
Pycharm学习教程(1) 定制外观
May 02 Python
Django框架视图函数设计示例
Jul 29 Python
python模拟鼠标点击和键盘输入的操作
Aug 04 Python
PyTorch之图像和Tensor填充的实例
Aug 18 Python
python实现网站微信登录的示例代码
Sep 18 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
python 怎样进行内存管理
Nov 10 Python
如何利用python 读取配置文件
Jan 06 Python
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
Jun 05 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
windows xp下安装pear
2006/12/02 PHP
php自动加载的两种实现方法
2010/06/21 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
sails框架的学习指南
2014/12/22 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
JavaScript实现短暂提示框功能
2018/04/04 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
python实现从ftp服务器下载文件的方法
2015/04/30 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
pytorch打印网络结构的实例
2019/08/19 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
python 实现图片裁剪小工具
2021/02/02 Python
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
退休感言
2014/01/28 职场文书
战友聚会主持词
2014/04/02 职场文书
我爱读书演讲稿
2014/05/07 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
考研导师推荐信范文
2015/03/27 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书
导游词之海南天涯海角
2019/12/05 职场文书