Differences between revisions 1 and 2
Revision 1 as of 2009-02-22 13:12:25
Size: 49
Editor: 92
Comment:
Revision 2 as of 2009-02-22 13:16:14
Size: 85
Editor: 92
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)

01_templates.py

   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
01_templates_out.py

KMaDGWiki: ProgramovanieInternetovychAplikacii/Templates (last edited 2009-02-22 14:45:49 by 92)