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
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?

Frugal computing: architektura pro dobu dražší infrastruktury

Vývojáři se naučili zrychlovat dotazy, přidávat cache, škálovat služby a hlídat účet za cloud. Frugal computing začíná o jednu otázku dřív: musí se výpočet, přesun dat, volání modelu nebo uložení vůbec stát? Rostoucí spotřeba datových center a nové evropské reportování ho posouvají do návrhu architektury, dřív než do závěrečné poznámky o udržitelnosti v prezentaci.

Odysseus: PewDiePie vydal open-source AI workspace, který běží na vašem vlastním hardwaru

AI
Komentáře: 0
Felix Kjellberg, youtuber se 110 miliony odběratelů, strávil rok učením se programovat a fine-tuningem vlastních AI modelů. Výsledkem je Odysseus – bezplatný, open-source workspace pro práci s umělou inteligencí, který neposílá žádná data do cloudu. Projekt má týden, přes 61 000 hvězdiček na GitHubu a znovu otevírá otázku, komu vlastně patří váš digitální kontext.

Když Git už nestačí: jak izolovat databázový stav pro pokusy AI agentů

Gitová větev vývojářům oddělí kód, ale databáze často zůstává společná. U AI agentů je to slabé místo: rychle spouštějí migrace, mění data a zkoušejí víc cest najednou. Databázová větev jim dá vlastní pracovní prostor, jenže tím práce nekončí. Ještě je potřeba řešit citlivá data, oprávnění, životnost větve i zbytek stavu aplikace.