Úvod do webového frameworku web.py

Webových frameworků je dnes nepřeberné množství a může být těžké si z nich vybrat ten svůj. Pokud hledáte minimální framework, který vám nechá volnou ruku, neklade žádná omezení a je zvládnutelný během pár chvil, vyzkoušejte web.py.

Seriál: Webový framework web.py (5 dílů)

  1. Úvod do webového frameworku web.py 14.11.2013
  2. web.py – první aplikace 22.11.2013
  3. web.py – šablonovací systém 9.12.2013
  4. web.py – databáze 27.12.2013
  5. web.py – autentizace a autorizace 1.9.2014

Jak už název napovídá, jde o webový framework napsaný v Pythonu zajišťující základní funkcionality webové aplikace. Vlastně nejde o framework (rámec) jako takový, web.py totiž neklade žádné meze a neurčuje správné postupy vývoje.

Ačkoliv, jak se brzy dozvíte, se tento framework dá zvládnout takřka během pár minut, nenechte se odradit od tohoto několikadílného seriálu. Pokusím se vám postupně představit všechny funkce frameworku, předvést jejich použití a načrtnout základní koncept webové aplikace.

Poznámka: Elementární znalost Pythonu je vhodná, není ale nezbytná, použitý kód bude jednoduchý a samopopisný.

Historie

Web.py vznikl v roce 2009 pod rukama Aarona Swartze, který v té době pracoval na portálu reddit.com. Zajímavostí je, že svůj software neuvolnil pod licencí open-source, ale dokonce pod tzv. public domain, tedy bez nároku na jakákoliv autorská práva.

Přestože Aaron 11. ledna tohoto roku zemřel, web.py jakožto otevřený software žije dál na své stránce na GitHubu. Denně sem přibývají nová vylepšení a úpravy (aplikace má k dnešnímu dni 557 forků).

Minimální framework

Jde o opravdu minimální webový framework. Zahrnuje totiž pouze základní zpracování HTTP metod, sezení, práci s databázemi, zpracování formulářů, šablonovací systém a několik dalších drobností. Navíc obsahuje, pro potřeby vývoje aplikace, jednoduchý server. Vše ostatní je řešené pomocí klasického Pythonu a jeho knihoven. Web.py je v základní verzi určen pro běh na Pythonu 2, z jeho repozitáře můžete ale získat i verzi pro Python 3.

To, že framework příliš nezasahuje do vývoje, může ale působit i jako dvojsečná zbraň – pokud nemáte ponětí, jak by měla webová aplikace vypadat, může to skončit malou katastrofou.

I takto může vypadat webová aplikace ve frameworku web.py (převzato ze stránek projektu):

import web

urls = (
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:        
    def GET(self, name):
        if not name: 
            name = 'World'
        return 'Hello, ' + name + '!'

if __name__ == "__main__":
    app.run()

Dokumentace

Abyste se naučili web.py, nemusíte číst tisíce řádků dokumentace. Stačí si na webu projektu projít základní jednostránkový tutoriál a potom v případě potřeby nahlédnout do cookbooku, kde se řeší všechny základní úkony webové aplikace – například nahrávání souborů, práce s databází či nakládání se sezením. Křivka zvládnutí tohoto frameworku je krátká a prudce rostoucí.

Dalším zdrojem inspirace může být open-source software postavený na web.py, v repozitářích GitHub, SourceForge, Launchpad a dalších najdete stovky až tisíce takových projektů. Na Google Groups existuje i skupina věnovaná web.py.

Vývoj

Pro vývoj ve frameworku web.py stačí pouze nainstalovaný Python a knihovna frameworku. Psát aplikaci můžete v jakémkoliv textovém editoru. Pro jeji nastartování pak stačí spustit v Pythonu hlavní soubor aplikace, web.py totiž obsahuje vestavěný webový server CherryPy.

Pokud raději vyvíjíte v pokročilejším prostředí, můžete využít i Eclipse či NetBeans, u obou těchto IDE je třeba doinstalovat plugin Pythonu.

Nasazení

Pro nasazení web.py do provozu máte několik možností. Jednou z nich je využití serveru Apache, stačí do něj nainstalovat jeden z WSGI modulů a přidat několik řádků do souboru httpd.conf. Pokud chcete raději používat protokol CGI, budete muset nainstalovat aplikaci flup, která se stará o překlad CGI-WSGI.

Další možností je využití některého z PaaS cloudových řešení (např.: Heroku, OpenShift či Google App Engine). Nakonec můžete využít i klasický hosting s podporou Pythonu a WSGI.

Závěr

Asi nejlépe vyjadřuje web.py jeho motto: „Think about the ideal way to write a web app. Write the code to make it happen.“, tedy volně přeloženo „Představte si, jak by měla vypadat ideální webová aplikace, a pak ji přesně takovou stvořte.“

Absolvent gymnázia a budoucí student FI MUNI se zájmem o programování, Linux, hudbu, elektroniku, umění a černobílou analogovou fotografii. Začal jsem u modrého Dosu, přešel přes C#, Javu a nyní se věnuji hlavně Pythonu, mimo jiné i jako stážista v Red Hatu.

Komentáře: 1

Přehled komentářů

golf flask
Zdroj: https://www.zdrojak.cz/?p=10209