TelenkovDmitry 3 kuukautta sitten
vanhempi
commit
96da6ac88c

+ 7 - 0
courses/jinja/dialogs.html

@@ -0,0 +1,7 @@
+{% macro dialog_1(title, msg='') -%}
+<div class="dialog">
+<p class="title">{{title}}</p>
+<p class="message">{{msg}}</p>
+<p><input type="button" value="Закрыть"></p>
+</div>
+{%- endmacro %}

+ 2 - 0
courses/jinja/footer.html

@@ -0,0 +1,2 @@
+</body>
+</html>

+ 8 - 0
courses/jinja/header.html

@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <base href="{{domain}}">
+    <title>{{title}}</title>
+</head>
+<body>

+ 9 - 0
courses/jinja/include.py

@@ -0,0 +1,9 @@
+
+
+
+
+def main():
+    pass
+
+if __name__ == '__main__':
+    main()

+ 55 - 0
courses/jinja/loader.py

@@ -0,0 +1,55 @@
+from jinja2 import Environment, FileSystemLoader, FunctionLoader
+
+
+
+persons = [
+    {"name": "Алексей", "old": 18, "weight": 78.5},
+    {"name": "Николай", "old": 28, "weight": 82.5},
+    {"name": "Иван", "old": 33, "weight": 94.0}
+]
+
+# Загручик файлов
+def test_1():
+    file_loader = FileSystemLoader('')
+    env = Environment(loader=file_loader)
+
+    tm = env.get_template('main.html')
+    msg = tm.render(users=persons)
+    print(msg)
+
+
+#
+def test_3():
+    file_loader = FileSystemLoader('')
+    env = Environment(loader=file_loader)
+
+    tm = env.get_template('page.html')
+    msg = tm.render(domain='http://proproprogs.ru', title='Про Jinja')
+
+    print(msg)
+
+
+# Загрузчик на основе функций
+def load_tpl(path):
+    if path == "index":
+        return '''Имя {{u.name}}, возраст {{u.old}}'''
+    else:
+        return '''Данные: {{u}}'''
+
+
+def test_2():
+    func_loader = FunctionLoader(load_tpl)
+    env = Environment(loader=func_loader)
+
+    tm = env.get_template('index') # Template
+    msg = tm.render(u=persons[0])
+    print(msg)
+
+
+
+def main():
+    test_3()
+
+
+if __name__ == '__main__':
+    main()

+ 17 - 0
courses/jinja/main.html

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <base href="https://proproprogs.ru/">
+    <title>Про программирование</title>
+</head>
+<body>
+
+<ul>
+{% for u in users -%}
+    <li>{{u.name}}
+{% endfor -%}
+</ul>
+
+</body>
+</html>

+ 5 - 0
courses/jinja/page.html

@@ -0,0 +1,5 @@
+{% import 'dialogs.html' as dlg %}
+{% include 'header.html' ignore missing %}
+<p>Содержимое страницы
+{{ dlg.dialog_1('Внимание', 'Это тестовый диалог') }}   
+{% include 'footer.html' %}