web2py is an open source full-stack framework for agile development of secure database-driven web-based applications, written and programmable in Python.
Created by Massimo Di Pierro [email protected]
Web2py was created in 2007 for Python 2.7. As of 2024 we support Python 3.9+ and no longer support earlier version. We do not recommend using Web2py for new projects but we recommend upgrading to py4web (http://py4web.com), also known as web3py. Web2py and Py4web share template language, pydal, rocket3 and similar design phylosophy.
- web2py.2.27.1 is the last version supporting Python 2.7.
- web2py 3.x only supports Python 3.9+ and it is in limited maintenance mode.
- Read more about our [https://py4web.com/_documentation/static/en/chapter-15.html](web2py to py4web transition guide).
- Read more about our [https://github.com/web2py/web2py/blob/master/versioning-and-support-policy.md](Versioning and Support policy).
An important part of web2py is the Database Abstraction Layer (DAL). In early 2015 this was decoupled into a separate code-base (PyDAL). In terms of git, it is a sub-module of the main repository.
The use of a sub-module requires a one-time use of the --recursive flag for git clone if you are cloning web2py from scratch.
git clone --recursive https://github.com/web2py/web2py.git
If you have an existing repository, the commands below need to be executed at least once:
git submodule update --init --recursive
PyDAL uses a separate stable release cycle to the rest of web2py. PyDAL releases will use a date-naming scheme similar to Ubuntu. Issues related to PyDAL should be reported to its separate repository.
To start web2py there is NO NEED to install it. Just unzip and do:
python web2py.py
That's it!!!
project/
README.md
LICENSE.web2py.txt
web2py.py > the startup script
anyserver.py > to run with third party servers
... > other handlers and example files
gluon/ > the core libraries
packages/ > web2py submodules
dal/
contrib/ > third party libraries
tests/ > unittests
applications/ > are the apps
admin/ > web based IDE
...
examples/ > examples, docs, links
...
welcome/ > the scaffolding app (they all copy it)
ABOUT
LICENSE
models/
views/
controllers/
sessions/
errors/
cache/
static/
uploads/
modules/
cron/
tests/
... > your own apps
examples/ > example config files, mv .. and customize
extras/ > other files which are required for building web2py
scripts/ > utility and installation scripts
handlers/
wsgihandler.py > handler to connect to WSGI
... > handlers for Fast-CGI, SCGI, Gevent, etc
site-packages/ > additional optional modules
logs/ > log files will go in there
deposit/ > a place where web2py stores apps temporarily
Report issues at https://github.com/web2py/web2py/issues