
Python – tworzenie stron www
Z roku na rok Python zyskuje na popularności i przyciąga dużą uwagę programistów z całego świata. Staje się on coraz częściej wybieranym językiem również w obszarze tworzenia i projektowania aplikacji internetowych po stronie back-end’u.
W artykule przedstawię popularne platformy do tworzenia aplikacji webowych w języku Python.
Czy warto używać języka Python do budowania aplikacji www?
Python to zaawansowany, przejrzysty język programowania o stosunkowo prostej składni i rozbudowanych bibliotekach. Nie potrzebujesz dużego doświadczenia żeby rozpocząć pisanie w nim prostych skryptów i budowanie strony internetowej.
Decyzję, czy budować aplikację internetową w Pythonie powinno poprzedzić zaprojektowanie tej aplikacji.
Jeśli będziesz chciał używać do zarządzania treścią w witrynie aplikacji WordPress, Python nie będzie dobrym rozwiązaniem do utworzenia strony. WordPress zbudowany jest w języku PHP i jeśli chcemy go używać, back-end naszej strony www również powinien zostać utworzony w PHP.
Front-end versus back-end
Programowanie aplikacji webowych obejmuje kilka technologii. Na kompletną stronę internetową najczęściej składają się następujące obszary:
- front-end
- back-end
- system do zarządzania treścią np. WordPress
Front-end
Front-end jest tym, co użytkownik widzi i z czym wchodzi w interakcję (interfejs użytkownika) w przeglądarce internetowej. W przypadku stron internetowych front-end tworzymy w języku JavaScript.
Back-end
Back-end aplikacji internetowych to program, który działa po stronie serwera. Możemy go tworzyć za pomocą np. języka Python. Zawiera on m.in. logikę obsługi żądań od użytkowników (komunikację z klientem). Odbiera żądania i wysyła zwrotnie odpowiednie dane. Przykładowe zadania realizowane po stronie back-end’u:
- uruchomienie skryptu np. PHP do wygenerowania HTML
- obsługa dostępu do danych z bazy np. do artykułów
- szyfrowanie i odszyfrowywanie danych
- obsługa logowania się przez użytkowników na ich konta
- przechowywanie i aktualizowanie rekordów w bazie danych
- obsługa plików znajdujących się na serwerze – wysyłanie i pobieranie plików
Co to jest framework webowy w Pythonie?
Framework webowy w języku Python to zbiór gotowych modułów i pakietów, które zawierają narzędzia ułatwiające programistom budowanie stron www.
Poniżej przykładowe funkcjonalności, które możemy tworzyć przy użyciu frameworków internetowych języka Python:
- adresy URL – routing adresów URL – obsługa adresów URL, które nie są mapowane na pliki fizyczne
- walidacja formularzy – weryfikowanie, czy do formularza wpisane zostały przez użytkownika wszystkie wymagane dane
- konfiguracja połączenia z bazą danych
- implementacja funkcji związanych z bezpieczeństwem danych
- przechowywanie i pobieranie sesji
Zalety tworzenia stron przy wykorzystaniu frameworków to przed wszystkim przyspieszenie i ułatwienie pracy dla programistów. Programowanie aplikacji z wykorzystaniem gotowych, przetestowanych funkcji jest szybsze i generuje mniejszą ilość błędów.
Rodzaje frameworków
Platformy używane przy tworzeniu aplikacji webowych podzielone są na trzy grupy.
Frameworki Full-stack
Grupa pierwsza to platformy typu Full-stack – są to kompleksowe rozwiązania zawierające narzędzia i gotowe programy, za pomocą których można budować kompletne strony internetowe.
Podejście typu full-stack obejmuje we frameworku wiele baz danych i komponentów umożliwiających np. sprawdzanie poprawności formularzy, generatory formularzy i układy szablonów.
Przykładowe frameworki webowe Full-stack
- Django
- Pyramid
- Web2Py
- Giotto
- TurboGears
- CubicWeb
Mikroframeworki
Grupa druga to tzw. mikroframeworki – przydatne są dla programistów, którzy tworzą niewielkie strony internetowe. Świetnie nadają się do budowania prototypów programów.
Mikroframeworki nie oferują takich narzędzi jak wielowątkowa warstwa abstrakcji bazy danych czy walidacja formularzy.
Przykładowe mikrofameworki webowe
- Flask
- CherryPy
- Bottle
- Falcon
- Dash
- Hug
- MorePath
Frameworki asynchroniczne
Grupa trzecia to asynchroniczne platformy. Asynchroniczność to możliwość wykonywania zadań równolegle. Można wykonywać kolejne zadanie zanim zakończy się poprzednie.
Frameworki asynchroniczne mogą obsłużyć tysiące aktywnych połączeń z serwerem. Są idealnym rozwiązaniem w sytuacji, gdy budujemy aplikacje, które muszą obsługiwać dużą liczbę aktywnych połączeń np. sklepy internetowe, platformy informacyjne.
Przykładowe frameworki asynchroniczne
- AIOHTTP
- Growler
- Sanic
- Tornado
Najczęściej używane biblioteki Pythona do tworzenia stron www
Najbardziej popularnymi platformami umożliwiającymi programowanie stron w języku Python są Django i Flask.
Framework Django
Twórcy Django kierują się filozofią „dołączone baterie” (ang. „batteries included”). Koncepcja „dołączonych baterii” oznacza, że produkt jest dostarczany ze wszystkimi możliwymi częściami wymaganymi do pełnej użyteczności. W Django zapewnione zostały wszystkie narzędzia, których programista może potrzebować do pracy po jego zainstalowaniu.
Django zapewnia szereg wbudowanych bibliotek i obsługę baz danych np. MySQL, SQLite, PostgreSQL i Oracle. Obsługuje on również funkcjonalności takie jak: lokalizacja, uwierzytelnianie użytkowników, sesje, pliki cookie, konfiguracja serwera www i kompatybilność z przeglądarkami internetowymi. Jest on dobrym rozwiązaniem to tworzenia w języku Python rozbudowanych projektów z dużą ilością funkcji.
Framework Django może być wykorzystywany do budowy niemal każdego rodzaju strony internetowej – od systemów zarządzania treścią, po sieci społecznościowe i serwisy informacyjne. Może współpracować z dowolnym frameworkiem po stronie klienta i dostarczać treści w popularnych formatach np. HTML, JSON, XML.
Django zawiera warstwę ORM, która umożliwia programistom odczytywanie i zapisywanie zapytań do relacyjnych baz danych za pomocą języka Python zamiast SQL’a.
Najważniejsze funkcjonalności Django
- ORM – mapowanie obiektów w aplikacji na rekordy w bazie danych
- routing adresów URL
- system szablonów HTML
- możliwość automatycznego uruchamiania i stosowania migracji
- szkielet do automatycznego generowania panelu administracyjnego
- automatyczne funkcje bezpieczeństwa
- wsparcie dla danych geograficznych i zapytań przestrzennych poprzez koncepcje GeoDjango
- możliwość integracji z systemami rezerwacji lub płatności
- obsługa cache
- wbudowany system uwierzytelniania użytkowników
Przykłady aplikacji webowych, które można budować we frameworku Django
- platformy zakupowe, na których użytkownicy mogą zakładać swoje konta
- systemy rezerwacji np. hotelu, wycieczki
- serwisy informacyjne dla firm, które obsługują duże ilości danych i wyświetlanych różnymi metodami reklam
- aplikacje do wymiany dokumentów i komunikacji pomiędzy przedsiębiorstwami
- systemy do wysyłania maili i powiadomień do użytkowników
- systemy do np. wyceny nieruchomości
- porównywarki cenowe, które są w stanie obsłużyć duży ruch ze strony użytkowników
- serwisy korporacyjne dla dużych firm
Framework Flask
Filozofią frameworka Flask jest zapewnienie rozwiązania, które można łatwo dostosować do swoich potrzeb. Flask traktowany jest jako mikroframework i jest najczęściej stosowany do tworzenia stron internetowych, których głównym priorytetem jest prosta funkcjonalność. Framework ten służy również do tworzenia prototypów.
Najważniejsze funkcjonalności Flask’a
- routing adresów URL
- zarządzanie sesjami
- wsparcie dla testów jednostkowych
- wbudowany programistyczny serwer www
- logowanie błędów i kontrola dostępu oparta na rolach w celu administrowania błędami
- możliwość podłączenia dowolnego ORM
- zarządzanie plikami cookie
- przesyłanie i udostępnianie plików statycznych
- wbudowany szybki debugger
- widoki szablonów Jinja2
- mechanizm śledzenia błędów
Przykłady projektów stron internetowych, które można budować we Flask’u
We Flasku najczęściej tworzymy aplikacje, które nie wymagają złożonych funkcjonalności. Możemy zbudować w nim np. poniższe strony:
- strona bloga do publikowania artykułów
- ankiety do zbierania opinii klientów
- wdrażanie na środowisko produkcyjne modeli uczenia maszynowego przygotowanych w Pythonie
- strona wizytówka do zaprezentowania swoich projektów
- aplikacja do wyświetlania informacji o np. pogodzie w poszczególnych miastach
- komunikator (czat) do wymiany wiadomości przez stronę www
- monitorowanie backupów przez stronę www
Zanim zaczniesz zajmować się programowaniem stron internetowych w którymkolwiek z opisanych frameworków, w pierwszym kroku powinieneś poznać podstawy Pythona. Znając podstawowe struktury języka Python, będziesz w stanie łatwiej opanować pracę z biblioteką do tworzenia stron www.
Jak wybrać technologię do tworzenia strony www?
Budowanie strony internetowej to nie tylko pisanie programu. Przed przystąpieniem do kodowania trzeba dobrze przemyśleć jak strona ma wyglądać i jakie ma zawierać funkcjonalności.
Przygotowanie projektu strony
Właściwie zrobiony projekt i przeanalizowanie złożoności aplikacji pozwoli Ci znaleźć odpowiedź na pytania:
- jakiej platformy użyć do zbudowania witryny
- w jaki sposób zarządzać na stronie treścią
- jakie zasoby np. serwery potrzebne są do utrzymania strony
- jak pozycjonować stronę w przeglądarkach
Wybór aplikacji
Użyj frameworka Django jeśli potrzebujesz tworzyć za pomocą Pythona rozbudowane strony www, które będą zawierać złożone funkcje, panel administracyjny, zarządzanie użytkownikami i inne zaawansowane funkcjonalności.
Jeśli planujesz prostą aplikację np. stronę wizytówkę lub stronę do wizualizacji danych z modeli predykcyjnych, możesz pomyśleć o mikroframeworkach. W takiej sytuacji stronę możesz zbudować za pomocą biblioteki Flask.
Dla stron, w których chcesz używać WordPress’a do zarządzania treścią, użyj języka PHP, gdyż na ten moment nie ma sposobu zintegrowania napisanego w Pythonie back-end’u z WordPress’em.
Pozycjonowanie strony www
Przygotowując się do programowania aplikacji www warto również zwrócić uwagę na obszar pozycjonowania. Jest to niezbędna część projektu, jeśli chcemy, aby klienci mogli znaleźć w przeglądarce naszą witrynę.
Obecnie najpopularniejszą przeglądarką jest Google. Tworząc aplikacje www powinniśmy więc użyć takich technologii, które są przez Google wspierane. Pozwoli nam to na uniknięcie w przyszłości problemów z pozycjonowaniem naszej strony.
