Pyramid Framework

Pyramid to ogólny framework do tworzenia aplikacji internetowych typu open source, zbudowany w języku Python. Pozwala programiście Python z łatwością tworzyć aplikacje internetowe.

Pyramid jest wspierany przez korporacyjny system zarządzania wiedzą KARL (projekt George'a Sorosa).

Instalowanie, uruchamianie i konfigurowanie

Jak opisano, „początek mały, zakończ duży, ale nadal gotowy framework”, Pyramid jest bardzo podobny do Flask, którego instalacja i uruchomienie zajmuje bardzo mało wysiłku. W rzeczywistości zauważysz, że niektóre wzorce są podobne do Flask, gdy zaczniesz budować tę aplikację.

Oto kroki, aby stworzyć środowisko piramidy -

  • Najpierw utwórz katalog projektu. Tutaj stworzyliśmy katalog o nazwiepyramidProject (możesz wybrać dowolną nazwę).

  • Następnie utwórz środowisko wirtualne, w którym zainstalujesz wszystkie zależności specyficzne dla projektu. Tutaj utworzyliśmy folder środowiska wirtualnego o nazwiepyramidEnv gdzie zainstalowano Pyramid.

  • Następnie przejdź do katalogu, pyramidEnv i zainstaluj piramidę za pomocą pip install pyramid.

Gdy wszystko zostanie wykonane, jak wspomniano powyżej, struktura katalogów będzie taka, jak pokazano poniżej -

Wersja piramidy zainstalowana w systemie jest podana poniżej -

Podstawowe pojęcia

Struktura Pyramid opiera się na poniższych podstawowych koncepcjach -

  • Zope (rozciągliwość, traversal, deklaratywne bezpieczeństwo) - Piramida jest luźno oparta na Zope w zakresie rozciągliwości, koncepcji przemierzania i deklaratywnego bezpieczeństwa.

  • Pylons(Wysyłanie adresu URL, nieoparty pogląd na trwałość, tworzenie szablonów itp.) - Innym obszarem, z którego piramida czerpie swoją koncepcję, jest projekt pylonów. Pylony mają tę koncepcję tras, która wywołuje wysyłanie adresu URL wewnątrz struktury piramidy, a także mają nieuparty pogląd na warstwę trwałości lub szablony.

  • Django(Widok, poziom dokumentacji) - Pyramid również dostaje podpowiedź od Django. Sposób, w jaki patrzymy, kierujemy nasz adres URL i poziom dokumentacji jest bardzo podobny do Django.

Oto cechy frameworka Pyramid -

  • Jest to najszybsza znana platforma internetowa w języku Python.

  • Obsługuje małe i duże projekty (po co przepisać, gdy wyrosniesz ze swojego małego frameworka).

  • Obsługuje jednoplikowe aplikacje internetowe, takie jak microframeworks.

  • Posiada wbudowane sesje.

  • Obsługuje wydarzenia podobne do Plone / Zope.

  • Zapewnia zarządzanie transakcjami (jeśli już zauważyłem, że używaliśmy Zope wcześniej).

Konfiguracja

Konfiguracja to ustawienia, które mają wpływ na działanie aplikacji. Istnieją dwa sposoby konfigurowania aplikacji typu piramida: konfiguracja imperatywna i konfiguracja deklaratywna.

Konfiguracja piramidy obsługuje -

  • Konieczna konfiguracja lub nawet nadpisanie konfiguracji opartych na dekoratorze

  • Wykrywanie konfliktów konfiguracji (w tym bardziej lokalne vs. mniej lokalne określanie)

  • Rozszerzalność konfiguracji (zawarta w wielu aplikacjach)

  • Elastyczne zasady uwierzytelniania i autoryzacji

  • Programowa introspekcja konfiguracji (wyświetlanie aktualnego stanu tras w celu wygenerowania nawigacji)

Generowanie adresu URL

W piramidzie możemy generować adresy URL dla tras, zasobów i zasobów statycznych. Praca z interfejsami API generowania adresów URL jest łatwa i elastyczna. Generując adresy URL za pomocą różnych interfejsów API piramidy, użytkownicy mogą dowolnie zmieniać konfigurację bez większego obawy o zerwanie łącza do którejkolwiek ze stron internetowych.

Krótko mówiąc, adres URL w piramidzie -

  • obsługuje generowanie adresów URL, aby umożliwić zmiany w aplikacji, które nie zepsują linków.

  • generuje adresy URL do zasobów statycznych, które znajdują się wewnątrz lub na zewnątrz aplikacji.

  • obsługuje trasy i przemierzanie.

Wyświetlenia

Jednym z podstawowych zadań piramidy jest znalezienie i wywołanie widoku, który można wywołać, gdy żądanie dotrze do aplikacji. Wyświetlane wywołania to fragmenty kodu, które wykonują coś interesującego w odpowiedzi na żądanie wysłane w aplikacji.

Kiedy mapujesz swoje widoki na wysyłkę adresu URL lub kod Pythona, może być dowolny rodzaj wywołania. Widoki mogą być deklaracją funkcji lub instancją, mogą być używane jako widok w piramidzie.

Poniżej przedstawiono kilka ważnych punktów dotyczących widoków -

  • Widoki są generowane z dowolnego wywoływalnego.

  • Widoki oparte na module renderującym mogą po prostu zwracać słowniki (nie jest to wymagane do zwracania obiektu w stylu webby).

  • Obsługa wielu widoków na trasę (GET, POST, HTTP Header, itp.).

  • Wyświetl adaptery odpowiedzi (jeśli chcesz określić, w jaki sposób powinny być obsługiwane zwracane wartości w porównaniu z obiektami odpowiedzi).

Rozciągliwość

Piramida została zaprojektowana z myślą o rozszerzalności. Jeśli więc programista piramidy ma na uwadze pewne ograniczenia podczas tworzenia aplikacji, osoba trzecia powinna mieć możliwość zmiany zachowania aplikacji bez konieczności modyfikowania jej kodu źródłowego. Zachowanie aplikacji typu piramida, która spełnia określone ograniczenia, można zastąpić lub rozszerzyć bez żadnych modyfikacji. Jest przeznaczony do elastycznych wdrożeń w wielu środowiskach (bez pojedynczych). Pyramid obsługuje oprogramowanie pośrednie „Tweens” (oprogramowanie pośredniczące WSGI, ale działa w kontekście samego Pyramid).

Prowadzenie programu Hello, Pyramid

Najprostszym programem, jaki możemy sobie wyobrazić po zainstalowaniu frameworka piramidy, aby sprawdzić, czy wszystko działa poprawnie, jest uruchomienie prostego programu „Hello, World” lub „Hello, Pyramid”.

Poniżej znajduje się moja piramida program „Hello, Pyramid” na porcie 8000 -

Powyższy prosty przykład jest łatwy do uruchomienia. Zapisz to jako app.py (w tym przypadku nadaliśmy nazwę pyramid_helloW.py).

Uruchomienie najprostszego programu: -

Następnie otwórz http://localhost:8000/w przeglądarce, a zobaczysz Hello, Pyramid! Wiadomość w następujący sposób -

Poniżej znajduje się wyjaśnienie powyższego kodu -

Linia nr. 1-3

Na początku pliku mamy zestawienia importu. Pierwsza linia importuje funkcję make_server, która może utworzyć prosty serwer WWW, gdy jest on przekazywany do aplikacji. Druga i trzecia linia importują konfigurację i funkcję odpowiedzi z piramidy. Funkcje te służą do konfigurowania szczegółów i ustawiania parametrów aplikacji oraz odpowiadania na żądania.

Linia nr. 5-6

Teraz mamy definicję funkcji o nazwie hello_world. Zaimplementuj kod widoku, który generuje odpowiedź. Funkcja, która spełnia wymagania widoku, jest odpowiedzialna za renderowanie tekstu, który zostanie przekazany z powrotem do jednostki żądającej. W powyższym przypadku wywoływana funkcja korzysta z funkcji Response, którą zaimportowaliśmy wcześniej. Powoduje to przekazanie wartości, która powinna zostać podana klientowi.

Linia nr. 8

if __name__ == '__main__': Python mówi „Rozpocznij tutaj, gdy jest uruchamiany z wiersza poleceń”, a nie kiedy ten moduł jest importowany.

Linia nr. 9-11

W linii nr. 9, tworzymy zmienną o nazwie config z obiektu utworzonego przez funkcję konfiguratora, który zaimportowaliśmy w górnej części programu. Linie 10 i 11 wywołują metody add_route i add_view tego obiektu. Ta metoda służy do definiowania widoku, którego może używać aplikacja. Jak widać, przekazujemy zdefiniowaną wcześniej funkcję hello_world. W tym miejscu ta funkcja jest faktycznie włączona jako widok.

Linia nr. 12-14

W tym przypadku faktycznie tworzymy aplikację WSGI, wywołując metodę make_wsgi_app obiektu config. Wykorzystuje atrybuty obiektu, takie jak dodany widok, do tworzenia aplikacji. Ta aplikacja jest następnie przekazywana do funkcji make_server, którą zaimportowaliśmy, w celu utworzenia obiektu, który może uruchomić serwer WWW w celu obsługi naszej aplikacji. Ostatnia linia uruchamia ten serwer.

Nasz hello world applicationto jedna z najprostszych i najłatwiejszych możliwych aplikacji typu piramida, konfigurowana „imperatywnie”. Jest to konieczne, ponieważ pełna moc Pythona jest dla nas dostępna, gdy wykonujemy zadania konfiguracyjne.

Podsumowując, Pyramid to platforma internetowa typu open source w języku Python z dużą i aktywną społecznością. Ta duża społeczność przyczynia się do tego, że framework sieciowy Python jest popularny i odpowiedni. Framework sieciowy Pyramid upraszcza i przyspiesza tworzenie aplikacji internetowych, zapewniając zestaw niezawodnych funkcji i narzędzi.