⇤ ← Revision 1 as of 2009-02-22 13:12:25
Size: 49
Comment:
|
Size: 85
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
{{attachment:01_templates_out.py}} |
Templates
1 # Prve interaktivne sedenie: Django Templates
2 #
3 # Pouzitie: V existujucom django projekte
4 # treba spustit "manage.py shell".
5 # To zabezpeci natiahnutie patricnych modulov.
6 #
7 # =====================================================
8 # Najprv import:
9 from django.template import Template,Context
10 # Vytvorime nasu prvu Template
11 t=Template('{{pozdrav}}, {{koho}}')
12 print t
13 # Context sa vytvara zo slovnika:
14 c1=Context({'pozdrav':'ahoj','koho':'svet'})
15 print c1
16 # A mozeme dosadit
17 print t.render(c1)
18 # Template sa da znovupouzit v inom kontexte
19 # pri zmene Contextu ju teda netreba vytvarat znovu
20 c2=Context({'pozdrav':'ahoj','koho':'slnko'})
21 print t.render(c2)
22 # Context nie je slovnikom, ale umoznuje slovnikove
23 # operacie:
24 c2['pozdrav']='dovi'
25 print t.render(c2)
26 # Hodnota v slovniku nemusi byt retazec, ale aj napr.
27 # cislo:
28 c2['koho']=3.14
29 print c2
30 print t.render(c2)
31 # Nielen cislo, ale lubovolny objekt
32 # Definujme nejaku triedu
33 class Vec(object):
34 def __init__(self,meno):
35 self.meno=meno
36 def __str__(self):
37 # Prvy znak velkym pismenom
38 return self.meno[0].upper()+self.meno[1:]
39
40 # Vytvorme instanciu
41 mes=Vec('mesiacik')
42 # print vola __str__:
43 print mes
44 # Vytvorme kontext, ktory obsahuje objekt triedy Vec
45 c3=Context({'pozdrav':'dobry vecer','koho':mes})
46 # a mozeme renderovat
47 print t.render(c3)
1 gejza@debian:~/django/minidata$ python manage.py shell
2 Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13)
3 [GCC 4.3.2] on linux2
4 Type "help", "copyright", "credits" or "license" for more information.
5 (InteractiveConsole)
6 >>> # Prve interaktivne sedenie: Django Templates
7 >>> #
8 >>> # Pouzitie: V existujucom django projekte
9 >>> # treba spustit "manage.py shell".
10 >>> # To zabezpeci natiahnutie patricnych modulov.
11 >>> #
12 >>> # =====================================================
13 >>> # Najprv import:
14 >>> from django.template import Template,Context
15 >>> # Vytvorime nasu prvu Template
16 >>> t=Template('{{pozdrav}}, {{koho}}')
17 >>> print t
18 <django.template.Template object at 0x84b606c>
19 >>> # Context sa vytvara zo slovnika:
20 >>> c1=Context({'pozdrav':'ahoj','koho':'svet'})
21 >>> print c1
22 [{'koho': 'svet', 'pozdrav': 'ahoj'}]
23 >>> # A mozeme dosadit
24 >>> print t.render(c1)
25 ahoj, svet
26 >>> # Template sa da znovupouzit v inom kontexte
27 >>> # pri zmene Contextu ju teda netreba vytvarat znovu
28 >>> c2=Context({'pozdrav':'ahoj','koho':'slnko'})
29 >>> print t.render(c2)
30 ahoj, slnko
31 >>> # Context nie je slovnikom, ale umoznuje slovnikove
32 >>> # operacie:
33 >>> c2['pozdrav']='dovi'
34 >>> print t.render(c2)
35 dovi, slnko
36 >>> # Hodnota v slovniku nemusi byt retazec, ale aj napr.
37 >>> # cislo:
38 >>> c2['koho']=3.14
39 >>> print c2
40 [{'koho': 3.1400000000000001, 'pozdrav': 'dovi'}]
41 >>> print t.render(c2)
42 dovi, 3.14
43 >>> # Nielen cislo, ale lubovolny objekt
44 >>> # Definujme nejaku triedu
45 >>> class Vec(object):
46 ... def __init__(self,meno):
47 ... self.meno=meno
48 ... def __str__(self):
49 ... # Prvy znak velkym pismenom
50 ... return self.meno[0].upper()+self.meno[1:]
51 ...
52 >>> # Vytvorme instanciu
53 >>> mes=Vec('mesiacik')
54 >>> # print vola __str__:
55 >>> print mes
56 Mesiacik
57 >>> # Vytvorme kontext, ktory obsahuje objekt triedy Vec
58 >>> c3=Context({'pozdrav':'dobry vecer','koho':mes})
59 >>> # a mozeme renderovat
60 >>> print t.render(c3)
61 dobry vecer, Mesiacik