一个简单的基于jinja2的参数模板器
fyoo的Python项目详细描述
Fyoo是一个简单的参数模板化程序,它围绕着一个命令。 几乎所有的事情都存在,不是时候我们 开始在我们的管道中使用它们吗?最好的数据 流代码是您不必编写的代码。在
安装
pip install fyoo
基本用法
Fyoo可以在--之后为子命令的参数提供上下文。 该子命令的所有参数都将成为预呈现的jinja2模板。在
Fyoo允许您在几个 方法,--fyoo-set是最简单和最容易开始的 有。在
^{pr2}$这不仅仅是简单的bash替换,因为 当参数为 在进程开始之前。在
现在让我们使用这个sql模板文件。在
{%-ifnottable%}{{throw("'table' required")}}{%-endif%}selectcount(*)from{{table}}{%-ifcondition%}where({{condition}}){%-endif%}
模板文件内容作为bash参数传递,但是 fyoo在将模板传递给sqllite3子命令之前呈现模板。在
-v/--verbose标志将在运行之前显示可执行文件 它。在
fyoo \ --verbose \ --jinja-template-folder ./tests/sql \ --set table=Employee \ --set condition='lower(Title) like "%sales%"'\ -- \ sqlite3 \ 'examples/Chinook_Sqlite.sqlite'\ '{% include "count.sql.jinja" %}'\ -csv # ["sqlite3", "examples/Chinook_Sqlite.sqlite", "\nselect count(*) as c\nfrom Employee\nwhere (lower(Title) like \"%sales%\")", "-csv"] # 4
警告
只传递你信任的上下文!否则你可能会离开你自己 对Command Injection完全开放。Fyoo适用于you 仍然直接控制模板上下文。在
- 项目
标签: