/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Học Python Qua Ví Dụ #023 - Jinja2 Template / Jinja2 Template For Loop

Nên xem bài dưới đây trước khi xem bài này:


  • Ví dụ 1:

import jinja2

vlan_dict = {				# định nghĩa dictionary có
    "vlan_id": 100,			# giá trị 100 (vlan 100)
    "vlan_name": "Thietbi",	# tên của vlan là "Thietbi"
}

# định nghĩa chuỗi
vlan_template = """			
vlan {{ vlan_id }}
   name {{ vlan_name }}
"""
'''
thực hiện nối các giá trị của dictionary vào chuỗi, 
nối giá trị vào các key nằm giữa 2 cặp dấu {{}}
'''
template = jinja2.Template(vlan_template)
print(template.render(vlan_dict))	


Kết quả:

vlan 100

   name Thietbi

[Finished in 0.2s]



  • Ví dụ 2 (for loop):

import jinja2

my_vlans = {			# định nghĩa dictionary có nhiều cặp giá trị
    "501": "blue501",
    "502": "blue502",
    "503": "blue503",
    "504": "blue504",
    "505": "blue505",
    "506": "blue506",
    "507": "blue507",
    "508": "blue508",
}
template_vars = {"vlans": my_vlans} # định nghĩa thêm một dictionary nữa, giá trị của dictionnary này là một dictionnary

# tạo vòng lặp lấy từng cặp key và giá trị gán vào vlan_id và vlan_name
# dấu - phía sau % là dùng bỏ dòng trắng khi xuất ra template
vlan_template = """
{%- for vlan_id, vlan_name in vlans.items() %}	
vlan {{ vlan_id }}
   name {{ vlan_name }}
{%- endfor %}
"""

# thực hiện nối
template = jinja2.Template(vlan_template)
print(template.render(template_vars))

Kết quả:
vlan 501
   name blue501
vlan 502
   name blue502
vlan 503
   name blue503
vlan 504
   name blue504
vlan 505
   name blue505
vlan 506
   name blue506
vlan 507
   name blue507
vlan 508
   name blue508
[Finished in 0.2s]


Xong!

No comments:

Post a Comment

/*header slide*/