我写了一个python脚本,该脚本从.yaml文件中创建开关配置。 而且我不确定如何创建适合我需求的网络表单。
我对如何做到这一点完全开放。我只需要一种将值发布到我的python脚本的方法。
我的HTML表单如下:
<form method="POST">
<input type="text" name="port"></input>
<input type="text" name="port.mode"></input>
</form>
发布的数据按如下方式进入Flask: [('port','Port1'),('port.mode','Access')]
我想要这样的数据: {“ ports”:{“ port1”:{“ mode”:“ Access”}}}
++更新 我已经在使用Jinja创建模板。 样本Jinja模板:
{%- for name,options in ports.items() %}
interface {{ name }}
{%- if options.mode == 'access' %}
switchport mode access
{% else %}
switchport mode trunk
{% endif %}
我的问题在HTML表单和模板引擎之间。我不确定如何对HTML表单进行建模以适应我的需求。
我可以想到的两种方法。 1.提交前,请用Javascript更改HTTP Post请求 2.编写一个服务器端python代码,以将HTTP发布数据转换为我的jinja模板的正确格式。
但是我完全接受我使用的方法。我不仅限于flask,jinja和python。
答案 0 :(得分:-1)
这是解决方案吗?
In [1]: x = [('port', 'Port1'), ('port.mode', 'Access')]
In [2]: {x[0][0]: {x[0][1]: {x[1][0]: x[1][1]}}}
Out[2]: {'port': {'Port1': {'port.mode': 'Access'}}}