Differences between revisions 1 and 2
Revision 1 as of 2009-02-24 15:18:58
Size: 1476
Editor: 147
Comment:
Revision 2 as of 2009-02-24 15:20:23
Size: 1475
Editor: 147
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
To naozaj tak aj je. Naozaj to tak aj je.
Line 10: Line 10:
ú
Nástroj na riešenie tohto problému je tag {{{ {% extends "..."%} }}}.

Nástroj na riešenie tohto problému je tag {{{ {% extends "..." %} }}}.

Hello, world v4

V tejto chvíli to vyzerá tak, že každá view má obvykle svoj súbor so šablónou. Naozaj to tak aj je.

Doterajší prístup však vedie k nemilému javu. HTML stránky v rámci jednej site obvykle obsahuju kopu spoločného kódu. To by viedlo k duplicite kódu v súboroch so šablónami, čo je zjavne zle; pri zmene spoločného kódu to musíme meniť na viacerých miestach naraz.

Nástroj na riešenie tohto problému je tag  {% extends "..." %} .

Ideme upraviť verziu 3. Chceme ju rozšíriť o pozdrav goodbye.

Obsah adresára templates je takýto (nie txt ale html)

   1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
   3 <html>
   4 <style type="text/css">
   5 h1 {
   6 	color:red;
   7 	font-style:normal;
   8 }
   9 </style>
  10 <head>
  11 <title>
  12 Hello, world v4
  13 </title>
  14 </head>
  15 <body>
  16 <h1>
  17 {% block pozdrav %}
  18 Toto tu neuvidime, lebo sa to pretazi.
  19 {% endblock %}
  20 </h1>
  21 </body>
  22 </html>
common.txt
   1 {% extends "common.html" %}
   2 {% block pozdrav %}
   3 Hello, {{ who }}.
   4 {% endblock %}
hello.txt
   1 {% extends "common.html" %}
   2 {% block pozdrav %}
   3 Goodbye, {{ who }}.
   4 {% endblock %}
goodbye.txt

Logika veci je zrejmá. Naše views budú používať v skutočnosti šablóny hello.html a goodbye.html. Spoločná časť je vytiahnutá v common.html, ktorú ostatné dve subšablóny dedia cez  {% extends "common.html"%} . common.html má v sebe vyznačený block menom pozdrav, ktorý jej podšablóny preťažujú.

Takto je možné (a žiadúce) vytvoriť celú hierarchiu šablón.

 attachment:views.py 

Ešte zostáva pridať ďalšiu položku do urlpatterns:

   1 (r'^goodbye/(.*)/$', views.goodbye),

Celý projekt: hello_v4.tar.gz

Pre poriadok ešte uvediem, že podobné veci je možné dosiahnuť pomocou tagu  {% include "..." %} .

KMaDGWiki: ProgramovanieInternetovychAplikacii/HelloWorldV4 (last edited 2009-02-24 15:30:55 by 147)