276
Rozdział 6.
Użyj tego szablonu
Produkcja czytelnych danych wyjściowych
przy użyciu silnika Jinja2
Jako że szablon viewlog.html dziedziczy po szablonie base.html, musisz pamiętać, aby
zapewnić wartość dla argumentu
the_title
oraz dostarczyć listę nagłówków kolumn
(opisowych tytułów) za pomocą argumentu
the_row_titles
. Nie zapomnij też
przypisać listy
contents
do argumentu
the_data
.
Funkcja
view_the_log
wygląda w tej chwili tak, jak zostało to pokazane poniżej.
@app.route(‘/viewlog’)
def view_the_log() -> ‘str’:
contents = []
with open(‘vsearch.log’) as log:
for line in log:
contents.append([])
for item in line.split(‘|’):
contents[-1].append(escape(item))
return str(contents)
Obecnie
zwracamy
oczekującej
przeglądarce
łańcuch
znakowy.
Powinieneś wywołać funkcję
render_template
w stosunku do pliku viewlog.html i przekazać
jej odpowiednie wartości dla każdego z trzech argumentów, których oczekuje. Utwórzmy
krotkę zawierającą opisowe tytuły i przypiszmy do argumentu
the_row_titles
,
a następnie przypiszmy wartość zmiennej
contents
do argumentu
the_data
. Zapewnimy
też właściwą wartość argumentu
the_title
, zanim wyrenderujemy nasz szablon.
Mając to wszystko na uwadze, zmieńmy funkcję
view_the_log
tak, jak zostało to pokazane
poniżej (wprowadzone przez nas zmiany zostały odpowiednio wyróżnione).
@app.route(‘/viewlog’)
def view_the_log() -> ‘html’:
contents = []
with open(‘vsearch.log’) as log:
for line in log:
contents.append([])
for item in line.split(‘|’):
contents[-1].append(escape(item))
titles = (‘Dane z formularza’, ‘Adres klienta’, ‘Agent użytkownika’, ‘Wyniki’)
return render_template(‘viewlog.html’,
the_title=Widok logu,
the_row_titles=titles,
the_data=contents,)
Zmień adnotację w taki sposób, aby
wskazywała, że (zamiast łańcucha
znakowego) zwracany jest kod HTML.
Utwórz
krotkę
zawierającą
opisowe
tytuły.
Wywołaj funkcję render_template,
przekazując jej wartości dla
każdego argumentu naszego
szablonu.
Pamiętaj,
że krotka
to lista tylko
do odczytu.
Rusz do boju i wprowadź przedstawione powyżej zmiany w swojej funkcji
view_the_log
,
a następnie zapisz je, aby framework ponownie uruchomił Twoją aplikację WWW. Gdy
będziesz gotów, przejrzyj log za pomocą swojej przeglądarki internetowej, korzystając
z ciągu URL o postaci: http://127.0.0.1:5000/viewlog.
jesteś tutaj
277
Przechowywanie danych i manipulowanie nimi
Dane wyjściowe
nie tylko czytelne,
ale też prezentują
się bardzo dobrze :)
Jazda próbna
Poniżej możesz się przekonać, co ujrzeliśmy, gdy weszliśmy na stronę prezentującą logi naszej zaktualizowanej
aplikacji WWW. Strona ta wygląda teraz tak samo jak nasze wszystkie inne strony, dzięki czemu mamy pewność,
że aplikacja korzysta z odpowiedniego szablonu.
Jesteśmy całkiem zadowoleni z uzyskanego efektu (i mamy nadzieję, że Ty też jesteś), ponieważ jest on bardzo
podobny do tego, co chcieliśmy osiągnąć, a dane wyjściowe wyświetlane w bardzo czytelnej formie.
Gdy wyświetlisz źródło przedstawionej powyżej strony (klikając prawym
przyciskiem myszy okno przeglądarki i wybierając odpowiednie polecenie z menu
kontekstowego), przekonasz się, że każdy element danych z logu otrzymał własny
znacznik
<td>
, każdy wiersz danych ma swój znacznik
<tr>
, a cała tabela znajduje
się w odpowiednich znacznikach
<table>
.

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.