Korzystanie z szablonów w Flask

Spisie treści
Aplikacja internetowa wymaga części, którą użytkownik może zobaczyć, a która nazywa się pogląd lub view i składa się z interfejsu napisanego w HTML co pozwala nam wyświetlać dane statyczne i dynamiczne zgodnie ze ścieżką, do której uzyskuje dostęp użytkownik.
Kiedy pracujemy z mikroframeworkami takimi jak Kolba, domyślnie nie jest konieczne wyświetlanie widoku, aby korzystać z dodatkowych elementów, a jedynie zwracanie kodu HTML odpowiedni, jaki możemy osiągnąć, aby pokazać spójne dane.
Problem pojawia się, gdy nasza aplikacja zaczyna się rozrastać i mamy kilka widoków, powtarzanie kodu zapełnia naszą aplikację elementami, które moglibyśmy ponownie wykorzystać i że robienie tego ręcznie to dla nas większa praca. Aby uniknąć tego problemu, mamy silniki szablonów, którzy pomagają nam ponownie wykorzystać pliki HTML a tym samym zmniejszyć ilość kodu, a także zwiększyć czytelność naszego programu.
Jinja2 to silnik szablonów napisany w całości w języku Pyton i był wzorowany na silniku szablonów z Django, to pozwala nam umieszczać fragmenty kodu HTML a wraz z własnym kodem silnika dołącz etykiety, które później zostaną zastąpione danymi z naszej aplikacji.
Co jeszcze zawiera?Zawiera również własne funkcje, które pomagają nam formatować otrzymywane dane, oprócz obsługi warunków warunkowych, funkcje dat i inne elementy, które pomagają nam w prosty i wyrazisty sposób zaprogramować zachowanie szablonu.
W najnowszej wersji Kolba Silnik ten jest dołączony do instalacji, dzięki czemu jego użytkowanie jest łatwiejsze i szybsze.
Rozmawialiśmy o tworzeniu widoku w Kolba to było tak proste, jak wydrukowanie kodu HTML w pożądanej funkcji ścieżki, jednak dla tych, którzy są nowicjuszami w tej strukturze, może to brzmieć bardzo dezorientująco.
W poniższym przykładzie stworzymy widok, w którym otrzymamy parametr i wydrukujemy go w wyniku, ciekawostką jest to, że ten parametr może wprowadzić użytkownik, więc widok jest do pewnego momentu dynamiczny, zobaczmy kod, a następnie przejdziemy do wyjaśnienia:
 from flask import Flaskapp = Flask (__ nazwa __) @ app.route ('/') @ app.route ('/ welcome') @ app.route ('/ welcome /') def powitanie (nazwa = None): nazwa = nazwa lub 'Użytkownik' return '' 'Witaj!

To jest nasz widok zrobiony w Flasku!

'' '% ifname __name__ ==' __main__ ': app.run()
Tutaj robimy coś bardzo prostego, najpierw importujemy biblioteki, które zawierają struktura, następnie definiujemy trzy kluczowe trasy, wszystkie prowadzą nas do tej samej funkcji o nazwie powitanie i otrzymuje parametr, który jest opcjonalny, gdzie jeśli nie zostanie odebrany, zostanie po prostu zignorowany w programie.
Następnie w funkcji tworzymy naszą instrukcję powrót i tutaj wskazujemy, że a Strunowy zawierające HTML za widok. Jeśli przetestujemy ten program, uzyskamy akceptowalny wynik w przeglądarce, zobaczmy:

Wielu może powiedzieć, że jest to bardzo funkcjonalne, ale co się stanie, jeśli zamiast wyświetlać tę pustą stronę, chcemy zintegrować style CSS, efekty JavaScript lub inne rzeczy. Wtedy nasz HTML zabierałby więcej kodu i dlatego wszystko byłoby zbyt skomplikowane, sprawiając, że nasza aplikacja byłaby piekłem w obsłudze.
Teraz stworzymy ten sam widok, ale korzystając z silnika szablonów, który opisaliśmy na początku samouczka, aby uzyskać przykład, musimy wykonać pewne przygotowania, które dotyczą struktury naszego projektu, ponieważ jeśli jesteśmy zamierzając korzystać z plików szablonów najlepiej oddzielić je od aplikacji do innych folderów i tym samym oddzielić naszą warstwę wizualną od warstwy reguł biznesowych i logiki.
Wiedząc o tym musimy stworzyć folder dla naszych szablonów, dla celów konwencji nazwiemy go szablonami, jednak musimy mieć też inne rzeczy, na przykład musimy mieć folder, który będzie służył jako moduł i nazwiemy go nazwą widoku, który zamierzamy stworzyć, Poza tym musimy mieć jakieś pliki, na następnym obrazku zobaczymy pełną strukturę, a następnie przejdziemy do odpowiedniego kodu, aby wszystko działało.

Zawartość plikuPrzed przejściem do generowania i korzystania z szablonu musimy zapoznać się z zawartością plików, które sprawią, że nasza aplikacja będzie działać bez problemów, na krótko zobaczymy każdy plik, aby nie tracić dużo czasu. Należy jednak pamiętać, że jest to sugerowana struktura Kolba pozwala każdemu programiście stworzyć strukturę, która najbardziej mu odpowiada, zgodnie z jego celem.
Ten plik jest tym, który pozwala nam uruchomić aplikację, stąd jego nazwa, można go ogólnie nazwać run.py Ponadto, ale na potrzeby tego samouczka umieszczamy nazwę, która jest bardziej zrozumiała dla społeczności hiszpańskojęzycznej, tutaj musimy umieścić następujący kod:
 z flasko import appapp.run (debug = True)

Jest to plik, który znajduje się w katalogu głównym aplikacji, konieczne jest ustalenie, że będzie on wykonywany i jego zależności, w tym pliku określamy również, że plik ma być używany widoki.py folderu powitalnego, który widzieliśmy wcześniej, może mieć dowolną nazwę, ale widoki.py Jest to konwencja, która pomoże nam w utrzymaniu przyjaznej aplikacji, tutaj musimy umieścić:
 z kolby import Flaskapp = Flask (__ nazwa __) import flasko.bienvenido.views

Ten plik musi być pusty, ponieważ potrzebujemy go tylko po to, aby Kolba zinterpretuj, że ten folder jest modułem naszej aplikacji.
Ponieważ mamy już pliki bazowe dla naszej aplikacji, czas stworzyć widok i użyć szablonu. Pierwszą rzeczą, którą zrobimy, jest utworzenie naszego widoku, będzie to bardzo podobne do poprzedniego widoku, ale ulepszone, do tego musimy popracować w pliku widoki.py i umieść następujące elementy:
 from flask import render_template, requestfrom flasko import [email protected] ('/') @ app.route ('/ welcome') def welcome_web (): name = request.args.get ('name', 'User') return render_template ('index.html', nazwa = nazwa)
Pierwszą rzeczą, którą robimy, jest import z frameworka biblioteki, która pozwala nam wyświetlać szablony i bibliotekę do przetwarzania żądań przeglądarki.
Następnie definiujemy trasy, które sprawią, że ten widok się pojawi, w tym przypadku jest to korzeń / a także kiedy słowo jest umieszczone Witamy.
Na koniec definiujemy naszą funkcję Witamy która przypisuje do nazwy zmiennej parametry otrzymane z żądania przeglądarki, a następnie wykonujemy zwrot funkcji render_template, to ten, który wywoła szablon i przekaże nazwę zmiennej jako parametry, gdzie również podajemy nazwę szablonu.
Czas stworzyć szablon, jest to w zasadzie plik z treścią HTML a z kilkoma tagami, które pomogą nam nadać mu dynamikę, plik do modyfikacji to index.html który jest w folderze szablony, zobaczmy kod, którego użyjemy:
 Witaj {{name}}

Używamy Flaska!

Ten kod jest prosty, tworzymy nasz HTML podstawowe, a następnie tam, gdzie chcemy, aby wygenerowana treść pojawiła się w widoku, po prostu umieszczamy podwójne nawiasy klamrowe {{}} aw środku nazwa parametru, co oznacza, że ​​gdy aplikacja jest wykonywana, ta wartość jest zastępowana pożądaną przez nas treścią. Jeśli zobaczymy na poniższym obrazku, zdamy sobie sprawę, jak umieszczona jest nazwa, którą przekazujemy jako parametr przez adres URL:

Możemy nie tylko używać parametrów, ale także tworzyć słowniki Pyton z danymi pochodzącymi ze źródła trwałości, takiego jak a Baza danych lub coś podobnego iw ten sposób móc umieścić jeszcze więcej danych.
Różne szablonyCiekawe w tej kwestii jest to, że możemy bawić się różnymi szablonami dla różnych części naszej aplikacji, to oddziela czystą warstwę prezentacji od tego, co faktycznie programujemy, usuwając HTML od środka możemy rozdzielić na dwa zespoły i dzięki temu działać poprawnie bez zamieszania.
Na tym kończymy ten samouczek, nauczyliśmy się korzystać z szablonów w aplikacjach wykonanych za pomocą Kolba, ten sposób pracy zaoszczędzi nam wysiłku i powtarzania kodu, zwłaszcza jeśli opieramy się na oficjalnej dokumentacji Jinja2 aby jak najlepiej wykorzystać silnik szablonów. Bardzo ważne jest ustalenie struktury projektu i oddzielenie różnych typów plików, ponieważ w ten sposób utrzymamy projekt przyjazny dla reszty naszego zespołu programistycznego lub w przypadku, gdy będziemy chcieli go wgrać do sieci kodowej takiej jak GitHub, aby dzielić się wykonaną pracą ze społecznością.
wave wave wave wave wave