创建一个模板解析的功能函数
第一步:生成目录结构
config_file |_templates | |_nginx.conf.j2 |_nginx.conf
第二步:写一个用于解析模板的函数
from jinja2 import PackageLoader,Environment def j2(package_name,package_path,template_name,file_name,*args,**kwargs): env = Environment(loader=PackageLoader(package_name,package_path)) template = env.get_template(template_name) t=template.render(*args,**kwargs) with open(file_name,'w') as f: f.write(t)
第三步:执行函数
j2('config_file','templates','nginx.conf.j2','nginx.conf',name='123')
执行完毕会生成解析过的nginx.conf 配置文件。
上面的工具使用了一段时间发下传入变量多的事后很不方便,于是修改变量从yaml 文件中传入。代码如下
from jinja2 import PackageLoader,Environment import yaml def j2(package_name,package_path,template_name,file_name,vars_file): env = Environment(loader=PackageLoader(package_name,package_path)) template = env.get_template(template_name) try: with open(vars_file) as f: vars=yaml.safe_load(f) t=template.render(vars) with open(file_name,'w') as f: f.write(t) except: exit
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏