Web2py

python web framework

Web2py je open source webový aplikační framework napsaný v Pythonu. Jedná se o full-stack framework, tedy nástroj pro kompletní vytvoření webové aplikace.

Web2py
Aktuální verze2.27.1 (16. listopadu 2023)
Vyvíjeno vPython
Typ softwaruwebový aplikační framework
LicenceGNU Lesser General Public License, version 3.0
Webwww.web2py.com
Některá data mohou pocházet z datové položky.

Vznikl v roce 2010 a je inspirován hlavně mnohem rozšířenějším frameworkem Django a dále frameworkem Ruby on Rails pro programovací jazyk Ruby. Software vznikl původně jako učební pomůcka pro nekomplikované vysvětlování principů tvorby dynamického webu. Původní jméno frameworku bylo Gluon (stále se tak jmenuje hlavní knihovna frameworku), ale bylo nutné přejmenování poté, co se zjistilo, že jméno Gluon již používá třetí strana.

Používá architekturu Model-View-Controller:

  • Kód modelu je vykonán při každém přístupu – používá se hlavně k vytvoření připojení do databáze, popisu databázového schématu a k zadání menu (nabídky),
  • Z kódu kontroleru běží jen funkce, určená (neupravíte-li výchozí chování) URL adresou aplikace/soubor_kontroleru/funkce. Jejím úkolem je připravit (typicky získat z databáze) proměnné pro zobrazení v HTML stránce,
  • View (HTML šablona, template) sestaví HTML stránku mixováním HTML jazyka a řídícího kódu v Pythonu.

Web2py používá atypický způsob provedení kódu v základních segmentech, modelu, kontroléru a view:

  • proměnné, které definujete v modelu, vidíte (bez jejich importování) i v kontroléru,
  • základní proměnné, používané téměř při každém přístupu (request, response, session, validátory údajů a helpery pro vytváření HTML značek), jsou k dispozici vždy automaticky (bez jejich importování),
  • model a kontrolér není klasicky importován, ale framework jej provádí pomocí execsript()

Kritici frameworku Web2py poukazují na to, že toto není správná praxe kódování v jazyce Python. Nicméně kód, který neumístíte do modelu, kontroléru nebo view, ale do modulů, je již i z hlediska viditelnosti proměnných zcela standardní.

Mezi zajímavé vlastnosti frameworku patří:

  • ve view je používán přímo Python, nikoli nějaký jiný šablonovací jazyk – nemusíte se tedy učit další syntaxi,
  • abstrakční jazyk pro práci s databází (třída DAL) je jednoduchý a automaticky sestavuje SQL příkazy pro aktuálně připojený databázový stroj (Postgres, SQLite, MySQL/MariaDb, Oracle, MS-SQL, apod.)
  • snadná práce s formuláři
  • snadná práce s mnoha aplikacemi z jedné instalace frameworku a z jedné instance vývojářského webového serveru
  • webové IDE rozhraní, které lze použít pro kódování i ladění místo newebového IDE (vývojářské aplikace)
  • možnost práce s GAE (Google Application Engine)

- pro administraci všech aplikací máte k dispozici vestavěné webové rozhraní admin

  • pro administraci databáze aplikace máte k dispozici webové rozhraní aplikace/appadmin

a další.

Nevýhody frameworku:

  • málo rozšířený framework
    • existuje málo komponent a modulů pro něj, mnoho věcí tedy musíte řešit sami
    • chybí použitelné CMS nebo e-shop, napsané pomocí tohoto frameworku
    • umístit aplikaci na hosting může být obtížnější
    • získat informace nebo pomoc může být obtížnější (avšak dokumentace a podpora komunity je dobrá)
  • nestandardní předávání proměnných request, response, session do přídavných modulů (viz dokumentace)

Začít vytvářet webové aplikace s Web2py je velmi jednoduché. Můžete:

  • začít vytvářet na zelené louce (from scratch),
  • ve webovém IDE klonovat demo aplikaci Welcome.

Rozhodnete-li se pro druhý postup, máte ihned připraveno

  • menu s pomocí twitter-bootstrap javascriptové knihovny (neboli vhodné pro automatické zmenšování na mobilní zařízení)
  • podporu jQuery a jednoduchého volání ajaxu
  • připojení do databáze SQLite (nebo do jiných databázových strojů po změně připojovacího řetězce)
  • definici tabulek pro autentizaci uživatele a autorizaci
  • přihlašování uživatele včetně registrace, reakce na zapomenuté heslo, logování přihlášení apod.
  • základní HTML vzhled (layout) aplikace, do jehož výřezu doplňují další HTML vámi vytvořené view (šablony)

Jako jednoduchý příklad o méně než 10 příkazech si tedy můžete vytvořit nejen triviální "Hello world", ale první jednoduchou aplikaci, která může např.:

  • definovat jednu tabulku a validace jejích polí (1 přidaný příkaz v modelu),
  • připravit formulář pro editaci nebo přidání záznamu (4 příkazy v kontroléru včetně uložení dat a přesměrování po něm na další URL),
  • vykreslit formuláře v HTML (1 příkaz a žádný extra HTML kód ve view),
  • integrovat formulář do menu (1 příkaz (položka příkazu) v modelu).

Webová stránka projektu: www.web2py.com

Podpora komunity: groups.google.com/forum/?fromgroups#!forum/web2py

Instalace:

  • instalovat Python 2.7 z www.python.org
  • stáhnout web2py_src.zip z download stránky projektu www.web2py.com/init/default/download (odkaz For normal users, Source code)
  • rozbalit zip do poadresáře instalace pythonu Lib/site-packages/web2py
  • v okně konsole (např. cmd ve Windows) se přepnout do adresáře Lib/site-packages/web2py a spustit: python web2py (cesta k instalaci pythonu musí být přidána do prostředí nebo uvést plnou cestu k python v příkazu)
  • v prohlížeči navigovat na adresu localhost:8000
  • odkazem na stránce přejít do administračního rozhraní
  • vytvořit v něm jednoduchou aplikaci jmenoaplikace (klonuje aplikaci Welcome)
  • u aplikace zvolit Spravovat/Manage a Upravit/Edit
  • začít zkoušet úpravami db.py (přidat definici tabulky, jak je naznačeno dole), default.py (funkce index), default/index.html
  • odzkoušet na localhost:8000/jmenoaplikace/default/index