Templates - for cyklus a prístup k atribútom
Druhé sedenie o Templates. Súbor 02_templates.py obsahuje pythonovské príkazy určené na copy/paste do interpretra spusteného príkazom
python manage.py shell
v adresári existujúceho djangovského projektu.
Relevantné časti dokumentácie sú
1 Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26)
2 [GCC 4.3.2] on linux2
3 Type "help", "copyright", "credits" or "license" for more information.
4 (InteractiveConsole)
5 >>> # Druhe interaktivne sedenie: Django Templates
6 >>> #
7 >>> # Pouzitie: V existujucom django projekte
8 >>> # treba spustit "manage.py shell".
9 >>> # To zabezpeci natiahnutie patricnych modulov.
10 >>> #
11 >>> # =====================================================
12 >>> # Najprv import:
13 >>> from django.template import Template,Context
14 >>> # Vytvorime Template,teraz trochu zlozitejsiu
15 >>> t1=Template("""Zoznam zakaznikov firmy {{ nazov_firmy }}
16 ... {% for zakaznik in zoz_zakaznikov %}
17 ... * {{ zakaznik }}
18 ... {% endfor %}
19 ... """)
20 >>> # Vytvorime Context
21 >>> c1=Context({'nazov_firmy' : 'Zebra s.r.o.', \
22 ... 'zoz_zakaznikov': ['Jan Prvy', 'Jozef Druhy']}\
23 ... )
24 >>> print c1
25 [{'zoz_zakaznikov': ['Jan Prvy', 'Jozef Druhy'], 'nazov_firmy': 'Zebra s.r.o.'}]
26 >>> # A mozeme dosadit
27 >>> print t1.render(c1)
28 Zoznam zakaznikov firmy Zebra s.r.o.
29
30 * Jan Prvy
31
32 * Jozef Druhy
33
34
35 >>> # Spravme teraz priklad so zoznamom objektov
36 >>> # Zadefinujeme triedu zakaznik
37 >>> class Zakaznik(object):
38 ... def __init__(self,meno,priezvisko):
39 ... self.meno=meno
40 ... self.priezvisko=priezvisko
41 ...
42 >>> c2=Context({'nazov_firmy' : 'Koala a.s.',\
43 ... 'zoz_zakaznikov' : [Zakaznik('Peter','Prvy'), \
44 ... Zakaznik('Ludovit','Sestnasty')]} \
45 ... )
46 >>> t2=Template("""Zoznam zakaznikov firmy {{ nazov_firmy }}:
47 ... {% for zakaznik in zoz_zakaznikov %}
48 ... * Meno:{{ zakaznik.meno }} Priezvisko:{{ zakaznik.priezvisko }}
49 ... {% endfor %}
50 ... """)
51 >>> print t2.render(c2)
52 Zoznam zakaznikov firmy Koala a.s.:
53
54 * Meno:Peter Priezvisko:Prvy
55
56 * Meno:Ludovit Priezvisko:Sestnasty
57
58
59 >>>