1
我试图从传递给网络作为字典的Jinja2通过字典循环用在什么按键控制:值用来
app.py数据在HTML创建一个表:
client = boto3.client('ec2')
vpc_ids = client.describe_vpcs()
for i in vpc_ids.get('Vpcs'):
for tag in i.get('Tags'):
if tag.get('Key') == 'Name':
vpc_list[i.get('VpcId')] = {'CidrBlock': i.get('CidrBlock'),
'Name': tag.get('Value')}
return vpc_list
这returnes字典是这样的:
vpc_list = {'vpc-1': {'CidrBlock': 'x.x.x.x/16', 'Name': 'a-vpc'},
'vpc-2': {'CidrBlock': 'y.y.y.y/16', 'Name': 'b-vpc'},
'vpc-3': {'CidrBlock': 'z.z.z.z/16', 'Name': 'c-vpc'},
'vpc-4': {'CidrBlock': 'q.q.q.q/16', 'Name': 'd-vpc'}}
我的HTML看起来像这样:
<div class="container">
{% if vpc_lists is defined %}
{% for vpc, data in vpc_lists.items() %}
<div class="row">
<div class="col-md-1">
<i class="fa fa-camera-retro fa-lg"></i>
</div>
<div class="col-md-3">
{{vpc}}
</div>
{% for key,value in data.items() %}
<div class="col-md-3">
{{value}}
</div>
{% endfor %}
<div class="col-md-2">
<a href="/vpc/{{vpc}}">Link</a>
</div>
</div>
{% endfor %}
{% endif %}
上面的工作...善良,但我想更好地控制如何以及在哪里我可以使用键值,所以而不是盲目循环这个我想能够获得基于关键的值,像
vpc.get('CidrBlock') or vpc['CidrBlock'] to get the x.x.x.x/16 value.
不知道我是否说得够清楚。在这里我找不到这样的东西。
非常感谢!这比我想象的要容易得多! – mancuss