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

Odebírat
Upozornit na
guest
1 Komentář
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře
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?

EmDash: Duchovní nástupce WordPressu, který řeší bezpečnost pluginů

Cloudflare přichází s ambiciózním projektem EmDash, který chce přepsat pravidla správy webového obsahu a nahradit dlouholetou dominanci WordPressu. Nový open source CMS, vytvořený za pouhé dva měsíce s pomocí AI, sází na moderní architekturu, důraz na bezpečnost i monetizaci a řeší klíčové problémy, které WordPress provázejí už desítky let.

Project Glasswing: Anthropic mění pravidla kybernetické bezpečnosti

AI
Komentáře: 0
Nový AI model Claude Mythos Preview dokáže autonomně nacházet bezpečnostní díry v každém hlavním operačním systému i prohlížeči – včetně zranitelností starých desítky let, které přežily miliony automatizovaných testů. Anthropic se rozhodl tuto schopnost nasadit jako nástroj obrany a svolal koalici dvanácti technologických gigantů – od Amazonu přes Microsoft až po JPMorganChase. Se závazkem 100 milionů dolarů a přístupem pro více než 40 organizací spravujících kritickou infrastrukturu je Project Glasswing závodem s časem: zajistit, aby obránci byli s těmito schopnostmi dřív než útočníci.

Git Worktree + Claude Code: paralelní vývoj a AI agenti ve více větvích najednou

Git worktree posouvá práci s větvemi na úplně jinou úroveň – místo neustálého přepínání a stashování nabízí paralelní pracovní prostředí nad jedním repozitářem. V kombinaci s nástroji jako Claude Code navíc otevírá dveře k běhu více AI agentů současně, každý izolovaně ve své větvi, bez kolizí a zbytečné režie.