1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 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-документе ссылки определяются как:
- <a href="#">Ссылка</a>'''
- 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 = '''<select name="cities">
- {% for c in cities -%}
- {% if c.id > 6 -%}
- <option value="{{c['id']}}">{{c['city']}}</option>
- {% elif c.city == "Москва" -%}
- <option>{{c['city']}}</option>
- {% else -%}
- {{c['city']}}
- {% endif -%}
- {% endfor -%}
- </select>'''
- def test_5():
- tm = Template(link)
- msg = tm.render(cities=cities)
- print(msg)
- def main():
- test_5()
- if __name__ == '__main__':
- main()
|