Přejít k navigační liště

Zdroják » Různé » Úvod do webového frameworku web.py

Úvod do webového frameworku web.py

Články Různé

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.

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.“

Komentáře

Subscribe
Upozornit na
guest
1 Komentář
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
golf

zdravím,
web.py unikl mé pozornosti (asi proto, že se jeho název trochu plete s web2py, což je naopak velice robustní framework). Zkoušel jsem chvilku Bottle, Webob (což vlastně ani není framework), momentálně se mé přízní těší Flask, i když jsem si chtěl dlouho vystačit jen s Werkzeugem, na kterém je Flask postavený.

U Djanga (a trochu i Pyramid) mi vadila provázanost na ORM (SQL), kterou nepotřebuji, protože chci používat jiný typ databáze. Pro robustní na SQL databázi založené databázi asi stojí za to o Djangu uvažovat. Ale hledám (hledal) jsem něco volnějšího. Werkzeug mne zaujal pěkně udělaným debuggerem v prohlížeči s interaktivní konzolí. Jinak by mi asi stačil i ten WebOb + Mako, nebo Jinja2. I když si vzpomínám, že tam mi ještě chybělo možnost tvoření reverzní url z routy. To mi chybělo i u Bottle.

Máte někdo nějaké zkušenosti a srovnání spíše těch menších a lehších frameworků (knihoven), které spíš pomáhají, než diktují co má být jak uděláno?

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.