Programowanie w języku Python

Web2Py

Web2py – framework webowy do szybkiego tworzenia bezpiecznych aplikacji bazujących na wzorcu MVC. Został napisany w języku Python. Web2py pisany jest z myślą o bezpieczeństwie aplikacji dostarczając mechanizmy walidacji i escape'owania danych wejściowych, co zapobiega wykorzystaniu większości popularnych luk typu SQL injection, Cross-site scripting i Insecure Direct Object Referencing. Framework zachęca developera do stosowania się do takich praktyk jak wykorzystanie modelu MVC, sesji obsługiwanych po stronie serwera, czy bezpiecznej obsługi wysyłanych plików.

Wyposażony jest we wbudowane komponenty, które pokrywają wszelkie podstawowe funkcje potrzebne do tworzenia aplikacji webowych. Na przykład:

  • ciasteczka (ang. cookies), sesje, zapytania i odpowiedzi HTTP
  • cache, w RAM jak i dyskowy
  • łatwy system tłumaczenia całych aplikacji
  • automatyczne logowanie błędów z zachowaniem kontekstu ich wystąpienia, w postaci ticketów
  • warstwa abstrakcji bazy danych, która dynamicznie generuje SQL, działająca także na Google App Engine
  • obsługa wielu baz danych (SQLite, MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server, Firebird, DB2 i Google App Engine).
  • obsługa wielu mechanizmów autoryzacji, oraz RBAC
  • API CRUD
  • API dla RSS, CSV, XML, JSON, XML-RPC, JSON-RPC, AMF-RPC (Flash/Flex).

Przewaga Web2py nad innymi frameworkami leży w tym, że jest on bardzo łatwy do nauki. Został tak zaprojektowany, ze względu na to, że powstawał początkowo jako narzędzia do nauki programowania aplikacji webowych dla studentów na Uniwersytecie DePaul. Dzięki temu jest on bardzo łatwy do uruchomienia (jako, że nie wymaga instalacji), posiada interfejs WWW który służy do edycji kodu (wbudowany edytor tekstowy z kolorowaniem składni), debugowania, testowania, zarządzania plikami i zdalnej administracji bazą danych. Wszystko to dostępne jest bez żadnych dodatkowych narzędzi.

Minusem Web2py jest wciąż mała społeczność skupiona wokół niego, co może utrudniać dalsze poznawanie frameworka.