- web2py integra tot allò necessari per desenvolupar aplicacions web segures, des d'IDE online fins a sistemes d'autenticació i bases de dades
- El framework destaca per la seva filosofia de simplicitat i seguretat: mínima configuració, màxima protecció davant d'atacs i errors
- Ofereix una corba d'aprenentatge molt baixa, cosa que el fa apte tant per a principiants com per a desenvolupadors avançats

La programació web a Python ha donat lloc a múltiples frameworks dissenyats per simplificar la vida del desenvolupador. Entre ells, web2py destaca especialment pel seu enfocament en l'agilitat, la seguretat i la facilitat d'ús sense sacrificar potència, per la qual cosa s'ha convertit en un dels favorits tant pels que s'inicien com pels desenvolupadors experimentats.
Si busques entendre en profunditat què és web2py, com funciona i per què pot ser l'elecció adequada per al proper projecte, en aquest article us portem des del més bàsic fins a les opcions avançades, analitzant cadascuna de les seves funcionalitats, avantatges, components i filosofia de treball.
Què és web2py?
web2py és un framework web de codi obert desenvolupat a Python que facilita la creació d'aplicacions web segures, escalables i altament portables. Es caracteritza per estar completament integrat, és a dir, inclou tot allò necessari per desenvolupar, provar i desplegar aplicacions sense dependre de components externs. El seu principal objectiu és fer el desenvolupament web simple, productiu i segur, eliminant la major part de la càrrega de configuració i administració habitual en altres entorns.
El framework està inspirat en grans referents com Ruby on Rails i Django, adoptant el millor dels dos mons: afavoreix la convenció sobre la configuració, implementa el patró Model-Vista-Controlador (MVC) i proporciona eines completes per programar des del navegador.
Característiques tècniques i filosofia de web2py
web2py segueix uns principis molt clars que en defineixen l'ús:
- No et repeteixis (DRY): Busca minimitzar la redundància de codi, automatitzant tasques repetitives i generant molt del codi necessari, especialment a bases de dades i formularis.
- Hi ha d'haver una forma –i només una– per fer les coses: Això afavoreix la claredat i facilita la mantenibilitat del codi, a més de reduir errors.
- Explícit abans que implícit: Encara web2py automatitza molt, la lògica del framework sempre busca mantenir les accions del desenvolupador sota control, mostrant clarament el que passa.
El framework, a més, està construït al voltant de la seguretat: valida automàticament les entrades de l'usuari, escapa les sortides per evitar atacs de tipus XSS i s'esforça per prevenir vulnerabilitats comunes sense carregar el programador amb detalls tècnics.
Components principals de web2py
Tot a web2py està pensat perquè treballis des d'un únic entorn i amb mínima (o cap) configuració inicial. Aquests són els components integrats que el diferencien:
- Servidor web integrat: A punt per utilitzar només instal·lar-lo, ideal per a desenvolupament i proves.
- Interfície d'administració basada en web (IDE): Permet crear, editar i gestionar projectes, bases de dades, fitxers i errors directament des del navegador.
- Sistema de tiquets d'errors: Quan passa un error, es genera un tiquet que ajuda a depurar el problema sense exposar detalls a l'usuari final.
- Capa d'abstracció de base de dades (DAL): Genera SQL per a diferents bases de dades automàticament, permetent canviar de motor en segons (SQLite, MySQL, PostgreSQL, Oracle, SQL Server, entre d'altres).
- Llenguatge de plantilles basat en Python pur: Les vistes usen sintaxi pythonica, cosa que redueix la corba d'aprenentatge i dóna gran flexibilitat.
- Eines per a autenticació i maneig d'usuaris: Incorporades des del primer moment, només has d'activar allò que necessites.
- APIs per a maneig de protocols web moderns: REST, JSON, XML-RPC, RSS, i més, suportats de manera nativa.
Instal·lació i primers passos amb web2py
Instal·lar web2py és extremadament senzill i es pot fer a Windows, Mac o Linux. No requereix configuració complexa ni instal·lació de dependències addicionals en la majoria dels casos. Es distribueix tant en format de codi font com amb paquets binaris que inclouen l'intèrpret de Python i SQLite, per la qual cosa és possible començar a programar només descomprimir el fitxer descarregat.
- Windows: Descarrega el paquet web2py_win.zip, descomprimeix-lo i executa el fitxer
web2py.exe. - Linux/Mac: Descarrega el codi font, descomprimeix i executa
python web2py.py.
En iniciar, web2py us sol·licita una contrasenya d'administrador i obre el navegador amb la interfície de gestió, des d'on pots crear o clonar aplicacions, accedir a la documentació i als exemples.
Model-Vista-Controlador a web2py
El patró MVC és al cor de web2py. Cada aplicació es compon de:
- models: Gestió i definició de la base de dades, taules i lògica de dades.
- controladors: Lògica de negoci i flux de laplicació; cada funció dun controlador és un punt dentrada (acció) accessible via URL.
- vistes: Plantilles HTML enriquides amb Python que mostren i donen format a les dades.
L'enrutat d'URLs a web2py és molt simple: cada URL segueix l'estructura /aplicacion/controlador/funcion/, encara que això és fàcilment personalitzable.
Gestió i modelatge de bases de dades
Una de les grans cartes de web2py és la seva Capa d'Abstracció de Dades (DAL). Amb DAL podeu definir taules i camps directament a Python, sense haver d'escriure SQL manual. El framework s'encarrega de crear i modificar taules automàticament, fins i tot migrant les dades si canvieu l'estructura.
Exemple bàsic de model:
db = DAL('sqlite://storage.db') db.define_table('post', Field('títol', 'string', requeriments=IS_NOT_EMPTY()), Field('contingut', 'text', requeriments=IS_NOT_EMPTY()), Field('image
La DAL permet connectar-te a múltiples tipus de bases de dades: només cal canviar la cadena de connexió. A més, suporta relacions, validacions, migracions automàtiques i transaccions distribuïdes.
Creació de formularis i validacions
web2py destaca per la seva capacitat per generar formularis automàticament a partir de models i fer validacions sense esforç del programador. Mitjançant l'assistent SQLFORM podeu tenir un formulari complet, vàlid i segur amb molt poques línies de codi:
form = SQLFORM(db.post) if form.process().accepted: response.flash = 'Publicació creada correctament'
Els missatges d'error, validacions i emmagatzematge de fitxers penjats es gestionen automàticament i de manera segura. A més, pots personalitzar els validadors per a cada camp segons les teves necessitats.
Autenticació, autorització i control d'accés
web2py ve amb un sistema complet d'autenticació (Auth) i control d'accés basat en rols (RBAC). Permet registrar usuaris, gestionar contrasenyes, configurar permisos i grups, i fins i tot integrar sistemes externs com OAuth o OpenID. Només cal instanciar i configurar Auth en el model per tenir formularis de registre, accés i control de sessions preparats per utilitzar:
from gluon.tools import Auth auth = Auth(db) auth.define_tables(username=True)
Després pots protegir funcions simplement aplicant un decorador:
@auth.requires_login() def nova_publicacion(): ...
Aquest sistema és a més molt personalitzable, permetent afegir verificacions per correu electrònic, CAPTCHA, i polítiques personalitzades de permisos.
Vistes i plantilles a Python
Les vistes de web2py són un dels seus punts forts: el codi HTML es pot barrejar amb Python pur de forma senzilla, utilitzant claus dobles {{}} per incrustar variables, bucles o condicions. A més, permet herència entre plantilles i facilita la reutilització de codi entre pàgines.
Exemple senzill de vista:
{{extend 'base.html'}}
{{=post.titulo}}
{{=post.contenido}}
Això facilita adaptar el disseny i estructura de la web a mesura que creix el teu projecte.
Sistema d'administració i gestió d'aplicacions
web2py inclou dues aplicacions importants de gestió:
- administrador: Permet crear, editar, instal·lar, empaquetar i gestionar totes les aplicacions web2py des d'una interfície còmoda i fàcil d'utilitzar.
- appadmin: Específica de cada projecte i orientada a administrar la base de dades: podeu inserir, editar, eliminar registres i consultar l'estat de les taules sense escriure una sola línia de SQL.
Aquest enfocament “bateries incloses” és ideal tant per a aprenentatge com per a desenvolupament professional.
Plugins, components i extensibilitat
L'ecosistema de web2py inclou plugins i aplicacions d'exemple anomenades appliances que pots instal·lar i modificar: des de wikis, blocs, sistemes de fòrums, fins a ERPs lleugers o apps col·laboratives. Molts plugins permeten estendre funcionalitats com el disseny amb CSS, gràfics, xats o integració amb altres plataformes.
A més, web2py suporta la creació de components AJAX reutilitzables i API REST, facilitant la construcció d'aplicacions modernes i modulars.
Internacionalització i suport multillenguatge
web2py suporta internacionalització i localització des de l'inici: qualsevol text a les vostres vistes o controladors pot ser marcat per a traducció amb l'objecte T. La interfície d'administració permet afegir i gestionar traduccions de forma visual, detectant cadenes automàticament.
S'hi inclou un sistema de pluralització potent i flexible, facilitant el suport a diferents idiomes amb regles gramaticals complexes.
Gestió de tasques en segon pla (cron)
web2py incorpora un sistema de tasques programades «cron» que permet executar scripts o accions de manteniment periòdicament, ja sigui després de servir una pàgina (soft cron), en un fil independent (hard cron) o usant el crontab del sistema.
Memòria cau, sessions i optimització del rendiment
El framework inclou sistemes de memòria cau a nivell de RAM, disc i memcached, el que permet escalar les aplicacions amb facilitat. El maneig de sessions és segur i flexible, permetent fins i tot emmagatzemar dades sensibles al servidor en comptes de a les cookies del client.
Seguretat
La seguretat és un pilar essencial de web2py. Al llarg del framework, les decisions predeterminades tendeixen a la seguretat: les entrades es validen i es filtren automàticament, es gestionen correctament els permisos i s'eviten atacs habituals com XSS, CSRF o injeccions SQL. Fins i tot l'emmagatzematge i l'accés a fitxers pujats està pensat per evitar riscos.
Actualització constant i compatibilitat amb versions anteriors
Web2py s'actualitza contínuament minimitzant incompatibilitats: els desenvolupadors es comprometen a no trencar la compatibilitat cap enrere. Si la teva aplicació funcionava en una versió anterior, continuarà funcionant a les següents. Això aporta estabilitat i confiança en el temps.
exemples pràctics
Desenvolupar un «Hola Món» a web2py és tan senzill com crear una funció al controlador i, si vols, una vista:
def index(): return 'Hola, món!'
O utilitzant vistes i passant variables:
def index(): return dict(missatge='Hola, món!')
A la vista associada:
{{=mensaje}}
Per afegir una base de dades i un formulari:
# models/db.py db = DAL('sqlite://storage.db') db.define_table('entrada', Field('títol'), Field('contingut', 'text')) # controllers/default.py def nova(): form = SQLFORM(db.entrada) if form.proces correctament' return dict(form=form)
Avantatges i motius per triar web2py
- Sense instal·lació complexa ni dependències externes: ideal per ensenyar o per arrencar projectes pilot.
- Corba d'aprenentatge molt baixa: especialment pràctic per als que s'inicien en el desenvolupament web amb Python.
- Potent i assegurança per a entorns professionals: grans empreses i universitats han apostat per ell per a aplicacions crítiques.
- Extensible i modern: suporta des d'aplicacions tradicionals fins a APIs REST, AJAX i webs modernes amb administració des de dispositius mòbils.
Comunitat i documentació
web2py disposa d´una comunitat internacional molt activa, especialment fort en espanyol i portuguès, amb fòrums, llistes de correu i recursos constantment actualitzats. La documentació oficial, llibres i tutorials cobreixen des del més bàsic fins a les opcions més avançades.
web2py és l'eina perfecta per als que cerquen combinar productivitat, seguretat i flexibilitat en el desenvolupament web amb Python. Tant si t'estàs iniciant com si ja tens experiència, descobriràs que programar aplicacions web mai no va ser tan senzill i potent.
Taula de Continguts
- Què és web2py?
- Característiques tècniques i filosofia de web2py
- Components principals de web2py
- Instal·lació i primers passos amb web2py
- Model-Vista-Controlador a web2py
- Gestió i modelatge de bases de dades
- Creació de formularis i validacions
- Autenticació, autorització i control d'accés
- Vistes i plantilles a Python
- Sistema d'administració i gestió d'aplicacions
- Plugins, components i extensibilitat
- Internacionalització i suport multillenguatge
- Gestió de tasques en segon pla (cron)
- Memòria cau, sessions i optimització del rendiment
- Seguretat
- Actualització constant i compatibilitat amb versions anteriors
- exemples pràctics
- Avantatges i motius per triar web2py
- Comunitat i documentació
