from jinja2 import Template
from markupsafe import escape
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def get_name(self):
return self.name
def get_age(self):
return self.age
def test_1():
name = "Федор"
age = 28
per = Person("Федор", 22)
tm = Template("Мне {{ p.get_age() }} лет и зовут {{ p.get_name() }}.")
msg = tm.render(p = per)
print(msg)
'''
Экранирование и блоки raw, for, if
'''
data = '''{% raw %}Модуль Jinja вместо
определения {{ name }}
подставляет соответствующее значение{% endraw %}'''
link = '''В HTML-документе ссылки определяются как:
Ссылка'''
def test_2():
tm = Template(data)
msg = tm.render()
print(msg)
def test_3():
tm = Template("{{ link | e}}")
msg = tm.render(link=link)
print(msg)
def test_4():
msg = escape(link)
print(msg)
'''Блок for, if'''
cities = [{'id':1, 'city': 'Москва'},
{'id':5, 'city': 'Тверь'},
{'id':7, 'city': 'Минск'},
{'id':8, 'city': 'Смоленск'},
{'id':11, 'city': 'Калуга'}]
link = ''''''
def test_5():
tm = Template(link)
msg = tm.render(cities=cities)
print(msg)
def main():
test_5()
if __name__ == '__main__':
main()