La couche d'abstraction de base de données (DAL) de Web2py genère dynamiquement et de manière transparente des requêtes SQL compatibles avec plusieurs bases de données:
SQLite est inclus au langage Python et sert de base de données par défaut pour Web2py. Une phrase de connexion permet d'accéder à des bases Firebird, IBM DB2, Informix, Ingres, Microsoft SQL Server, MySQL, Oracle, PostgreSQL et Google App Engine (GAE) en permettant:
La couche DAL est rapide, au moins comparable à SQLAlchemy et Storm.
Web2py implémente une couche DAL et non une couche Object-relational mapping(ORM). Un ORM transforme les tables d'une base de données en classes, les enregistrements en instances de ces classes. Une couche DAL permet d'associer les tables de la base en instances de ces classes et les enregistrements en instance d'autres classes. Cela permet d'avoir une synthaxe proche des ORM mais en étant plus rapide tout en permettant d'associer n'importe quel requête SQL. Cette couche peut fonctionner sans Web2py.
Web2py supporte les migrations de base de données. Si une table ou une colonne est différente du modèle corresponsdant, la définition de la table est changée automatiquement. Cette option peut être désactivée pour n'importe quel table, et les actions sont enregistrées pour suivre les modifications.
Limitations:
La documentation de référence de Web2py est le livre The Official web2py Book, de . Le manuel est aussi disponible en version imprimée ou en PDF.
La documentation en ligne est lié à la page d'accueil de Web2py, avec un cookbook, des vidéos, des exemples intéractifs, une API de référence intéractive avec epydoc, une FAQ etc.
Le code de Web2py utilise la licence publique générale GNU avec une exception commerciale. De nombreux paquet tiers distribués avec Web2py utilise généralement des licences MIT ou BSD. Les applications conçus avec web2py sont couvertes par la licence GPL.
Massimo DiPierro possède les droits d'auteurs et la marque web2py.