Popularne frameworki webowe w Pythonie
Dagmara Czarnota , 21 października 2020
Python jest obiektowym językiem programistycznym, który charakteryzuje się czytelnością i klarownością kodu źródłowego. Jest także językiem wieloplatformowym, o bardzo szerokim zastosowaniu, począwszy od tworzenia back-endu aplikacji webowych, a skończywszy na takich dziedzinach jak data science i machine learning. Wśród programistów cieszy się niesłabnącą popularnością, głownie ze względu na wszechstronne zastosowanie, posiadanie niezwykle rozbudowanych i bogatych bibliotek oraz dobrze działających frameworków.
Poniżej znajdują się opisy popularnych frameworków wykorzystywanych w Pythonie.
Django
Django jest jednym z najpopularniejszych frameworków wykorzystywanych przez programistów pracujących w Pythonie. Ten darmowy framework umożliwia szybkie i efektywne tworzenie wysokiej jakości interfejsów API i aplikacji internetowych. Nic dziwnego, że stał się standardem wykorzystywanym w procesie tworzenia aplikacji. Do głównych atutów Django należą: posiadanie wydajnych systemów cache'owania, automatycznie generowanego i kompletnego panelu administracyjnego oraz własnego serwera WWW służącego do testowania aplikacji. Dodatkowo framework może pochwalić się dostępem do dużej ilości bibliotek. Django wykorzystywany jest w takich witrynach internetowych jak: Instagram, Pinterest i The Washington Times.
Flask
Flask jest tak zwanym mikroframeworkiem - nie posiada skomplikowanych narzędzi i bibliotek, warstwy abstrakcji bazy danych oraz funkcji sprawdzania poprawności formularzy. Czynnikiem wyróżniającym ten framework jest jego lekka i modułowa konstrukcja, która przyczynia się do szybkiej i łatwej adaptacji Flaska do różnorodnych potrzeb. Podobnie jak Django wykorzystywany jest głównie w tworzeniu aplikacji, jednak ze względu na swoją lekkość i prostotę, stosowany jest przede wszystkim przy realizacji mniejszych projektów. Flask umożliwia zbudowanie silnej podstawy aplikacji internetowej. Do aplikacji korzystających z Flaska należą między innymi: LinkedIn i Pinterest.
Web2py
Web2py jest darmowym frameworkiem bazującym na wzorcu MVC, umożliwiającym szybkie tworzenie skalowalnych, bezpiecznych i przenośnych aplikacji internetowych. Framework został napisany z myślą o bezpieczeństwie aplikacji, dlatego dostarcza mechanizmy walidacji i escape'owania danych wejściowych. Web2py usprawnia procedurę tworzenia aplikacji za pośrednictwem serwera internetowego, bazy danych SQL i interfejsu online. Dodatkowo pozwala na tworzenie, modyfikowanie, wdrażanie i zarządzanie aplikacjami sieciowymi za pośrednictwem przeglądarek internetowych.
TurboGears
TurboGears umożliwia tworzenie aplikacji wykorzystujących informacje z baz danych. Framework został zaprojektowany w taki sposób, aby pozwolić programistom na szybkie tworzenie rozszerzalnych aplikacji internetowych przy przeprowadzaniu stosunkowo niewielkiej konfiguracji. Zawiera czytelne szablony oraz wykorzystuje takie komponenty jak: Genshi, Repoze, SQLAlchemy i WebOb, które znacznie usprawniają proces tworzenia aplikacji wymagających łączności z bazami danych. Do głównych atutów TurboGears należą: zgodność ze wzorcem MVC, obsługa wielu baz danych oraz posiadanie licznych bibliotek.
CubicWeb
CubicWeb jest darmowym frameworkiem napisanym w Pythonie, który umożliwia deweloperom efektywne tworzenie aplikacji internetowych poprzez ponowne wykorzystanie komponentów (zwanych kostkami, cubes) przy zachowaniu znanych zasad projektowania obiektowego. Programista może zestawiać ze sobą kostki w celu zbudowania konkretnych funkcjonalności. Do kluczowych funkcji CubicWeb należą: obsługa OWL i RDF oraz upraszczanie zapytań dotyczących danych dzięki zastosowaniu RQL.
Giotto
Giotto jest kolejnym frameworkiem Pythona opartym o wzorzec MVC. Jego głównym celem jest dostarczenie niezależnych i odrębnych funkcji dla projektantów stron internetowych, twórców tych stron oraz administratorów systemów. Giotto kładzie szczególny nacisk na oddzielenie widoku, modelu i kontrolera, dzięki czemu projektanci, twórcy i administratorzy mogą pracować niezależnie od siebie. Wyraźne rozdzielenie tych warstw ma zwiększać efektywność wykonywanych prac.
Bottle
Bottle jest lekkim mikroframeworkiem, który umożliwia szybkie tworzenie prostych aplikacji internetowych. Pierwotnie Bottle miał być wykorzystywany tylko do budowania API. Obecnie Bottle wykorzystuje się przede wszystkim do tworzenia uproszczonych aplikacji i prototypów. Ten mikroframework korzysta tylko ze standardowej biblioteki Pythona i tworzy jeden kod źródłówy dla każdego projektu. Warto wspomnieć o tym, że Bottle obsługuje wiele wtyczek dla różnych baz danych. Dodatkowo ma wbudowany serwer HTTP i udostępnia trasy wysyłania żądań związanych z obsługą parametrów adresu URL.
CherryPy
CherryPy jest kolejnym obiektowym mikroframeworkiem Pythona opartym na minimalistycznym podejściu. Każda aplikacja zbudowana w tym środowisku jest samodzielnym serwisem posiadającym własny, wbudowany, wielowątkowy serwer internetowy i działa na dowolnym systemie operacyjnym obsługującym Pythona. CherryPy wyróżnia się wbudowanym narzędziem do kodowania, buforowania i uwierzytelniania. Dodatkowo zapewnia wsparcie różnym serwerom sieci webowym takim jak: Apache i IIS.
Sanic
Sanic jest bardzo prostym frameworkiem o funkcjach zbliżonych do tych wykorzystywanych we Flasku, ale działających zdecydowanie szybciej. Cechą wyróżniającą Sanic spośród innych frameworków jest jego asynchroniczne działanie przyspieszające udzielanie odpowiedzi na żądania HTTP. Sanic nie tylko potrafi odczytywać i zapisywać pliki cookie, ale również obsługuje schematy routingu podrzędnego w aplikacji.
Tornado
Tornado jest frameworkiem o otwartym kodzie źródłowym, który początkowo był stworzony dla firmy FriendFeed, która w 2009 r. została przejęta przez Facebooka. Tornado słynie przede wszystkim ze swojej bardzo wysokiej wydajności. Jego struktura i konstrukcja umożliwia obsługę 10 000 połączeń w tym samym czasie. Ta niesamowita wydajność sprawia, że Tornado jest wykorzystywany jako narzędzie w budowaniu aplikacji internetowych nastawionych na jednoczesną obsługę kilu tysięcy użytkowników. Framework pozwala na wdrożenie systemów uwierzytelniania i autoryzacji osób trzecich oraz oferuje najwyższą jakość usługi w czasie rzeczywistym.
AIOHTTP
AIOHTTP jest kolejnym asynchronicznym frameworkiem, który słynie z możliwości włączenia funkcji przekierowywania zapytań. Zapytania są natychmiast przekierowywane do miejsca, w którym następuje ich obsługa i analiza. Framework umożliwia efektywne budowanie widoków oraz zajmuje się obsługą pośredniczącego oprogramowania. Warto również wspomnieć, że AIOHTTP obsługuje technologię WebSockets dotyczącą zarówno klienta jak i serwera nie powodując przy tym callback hell, czyli wielokrotnego zagnieżdżenia funkcji wywołania zwrotnego.
Pyramid
Pyramid jest coraz bardziej doceniany przez programistów. Jego elastyczność, jakość i przejrzystość przyczynia się do wzrostu popularności wśród deweloperów. Jego struktury są wszechstronne, dlatego wykorzystywany jest zarówno przy małych i prostych, jak i dużych i skomplikowanych projektach. Pozwala na mapowanie adresów URL oraz generowanie struktury HTML. Framework jest używany przy projektach tworzonych dla gigantów technologicznych takich jak: Mozilla, Dropbox i SurveyMonkey.
Zope
Zope jest open source'owym serwerem aplikacji napisanym w języku Python. Zope był pierwszym systemem wykorzystującym metodykę obiektową w swoim działaniu, dzięki czemu przyczynił się do wzrostu popularności Pythona. Umożliwia tworzenie nie tylko aplikacji webowych, ale także portali internetowych, intranetowych oraz systemów zarządzania treścią. Najważniejszą część systemu stanowi obiektowa baza danych ZODB odpowiedzialna za przechowywanie wszystkich innych części systemu. Zope posiada wbudowany serwer WWW, FTP i WebDAV. Dodatkowo może współpracować z innymi serwerami jak np. z Apache.