Differences between revisions 1 and 6 (spanning 5 versions)
Revision 1 as of 2009-02-22 13:12:25
Size: 49
Editor: 92
Comment:
Revision 6 as of 2009-02-22 14:45:49
Size: 452
Editor: 92
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
{{attachment:01_templates.py}} Prvé sedenie o Templates. Súbor [[attachment:01_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ú

 * http://docs.djangoproject.com/en/dev/#the-template-layer
 * http://www.djangobook.com/en/1.0/chapter04/

{{attachment:01_templates_out.py}}

Templates

Prvé sedenie o Templates. Súbor 01_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 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)