gejza@debian:~/django/minidata$ python manage.py shell
Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> # Prve interaktivne sedenie: Django Templates
>>> #
>>> # Pouzitie: V existujucom django projekte
>>> # treba spustit "manage.py shell".
>>> # To zabezpeci natiahnutie patricnych modulov.
>>> #
>>> # =====================================================
>>> # Najprv import:
>>> from django.template import Template,Context
>>> # Vytvorime nasu prvu Template
>>> t=Template('{{pozdrav}}, {{koho}}')
>>> print t
<django.template.Template object at 0x84b606c>
>>> # Context sa vytvara zo slovnika:
>>> c1=Context({'pozdrav':'ahoj','koho':'svet'})
>>> print c1
[{'koho': 'svet', 'pozdrav': 'ahoj'}]
>>> # A mozeme dosadit
>>> print t.render(c1)
ahoj, svet
>>> # Template sa da znovupouzit v inom kontexte
>>> # pri zmene Contextu ju teda netreba vytvarat znovu
>>> c2=Context({'pozdrav':'ahoj','koho':'slnko'})
>>> print t.render(c2)
ahoj, slnko
>>> # Context nie je slovnikom, ale umoznuje slovnikove
>>> # operacie:
>>> c2['pozdrav']='dovi'
>>> print t.render(c2)
dovi, slnko
>>> # Hodnota v slovniku nemusi byt retazec, ale aj napr.
>>> # cislo:
>>> c2['koho']=3.14
>>> print c2
[{'koho': 3.1400000000000001, 'pozdrav': 'dovi'}]
>>> print t.render(c2)
dovi, 3.14
>>> # Nielen cislo, ale lubovolny objekt
>>> # Definujme nejaku triedu
>>> class Vec(object):
...     def __init__(self,meno):
...         self.meno=meno
...     def __str__(self):
...         # Prvy znak velkym pismenom
...         return self.meno[0].upper()+self.meno[1:]
...
>>> # Vytvorme instanciu
>>> mes=Vec('mesiacik')
>>> # print vola __str__:
>>> print mes
Mesiacik
>>> # Vytvorme kontext, ktory obsahuje objekt triedy Vec
>>> c3=Context({'pozdrav':'dobry vecer','koho':mes})
>>> # a mozeme renderovat
>>> print t.render(c3)
dobry vecer, Mesiacik

