jesteś tutaj�
275
Przechowywanie danych i manipulowanie nimi
Osadzanie logiki wyświetlania w swoim szablonie
Poniżej znajdziesz nowy szablon, o nazwie viewlog.html, który zostanie użyty do przekształcenia
surowych danych pochodzących z pliku logu w tabelę HTML. Szablon ten oczekuje listy list
contents
jako jednego ze swoich argumentów. Wyróżniliśmy te fragmenty szablonu, na których
powinieneś się skupić. Zauważ, że zapewniana przez silnik Jinja2 konstrukcja pętli
for
jest bardzo
podobna do tej, która jest stosowana w języku Python. Są jednak między nimi dwie istotne różnice:
• Nie ma tu potrzeby używania znaku dwukropka (
:
) na końcu wiersza zawierającego
instrukcję
for
(ponieważ znacznik
%}
odgrywa rolę separatora).
• Zestaw pętli kończy się znacznikiem
{% endfor %}
, ponieważ silnik Jinja2 nie obsługuje
wcięć (a więc potrzebny jest tutaj jakiś inny mechanizm).
Jak widać, pierwsza pętla
for
spodziewa się znaleźć swoje dane w zmiennej o nazwie
the_row_titles
,
podczas gdy druga spodziewa się swoich danych w czymś o nazwie
the_data
. Trzecia pętla
(zagnieżdżona w drugiej) oczekuje danych w postaci listy list.
Nie musisz tworzyć tego
szablonu samodzielnie.
Pobierz go spod adresu
ftp://ftp.helion.pl/
przyklady/pytrg2.zip.
{% extends ‘base.html’ %}
{% block body %}
<h2>{{ the_title }}</h2>
<table>
<tr>
{% for row_title in the_row_titles %}
<th>{{row_title}}</th>
{% endfor %}
</tr>
{% for log_row in the_data %}
<tr>
{% for item in log_row %}
<td>{{item}}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
{% endblock %}
Aby zapewnić spójny
wygląd wszystkich
stron, niniejszy
szablon dziedziczy po
tym samym szablonie
bazowym, który był
używany w całej
naszej aplikacji WWW.
Cała tabela
umieszczona
jest w obrębie
znaczników
<table>.
Każdy element danych
znajduje się pomiędzy
znacznikami <td>,
a każdy wiersz tabeli
ma własny zestaw
znaczników <tr>.
Kod gotowy
do użycia
Opisowe tytuły
(każdy umieszczony
pomiędzy odpowiednimi
znacznikami <th>) mają
swój osobny wiersz
(umieszczony w obrębie
znaczników <tr>).
Pamiętaj, aby umieścić ten nowy szablon w folderze templates Twojej aplikacji WWW,
zanim spróbujesz z niego skorzystać.
Get Python Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.