Skip to content
Free and open source full-stack enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.
Python HTML JavaScript Shell CSS Dockerfile Other
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Create Aug 14, 2018
applications Added Python 3 binaries to the download page +typo Oct 23, 2019
docker some changes in permissions, thanks Paolo May 19, 2019
docs adjusted docs to newer structure Feb 15, 2015
examples removed, no longer necssary since options can be passe… May 4, 2019
extras Modified fake from PyInstaller - for PY3 Jul 1, 2019
gluon Merge branch 'master' of Nov 3, 2019
handlers fixes #1413 Sep 21, 2016
scripts Allow easily switching fake_migrate on to allow easier fixes of the d… Jul 25, 2019
site-packages initial commit Nov 23, 2011
.codecov.yml should turn off the codecov/changes report May 31, 2016
.gitignore Ignore __pycache__ folders Mar 7, 2019
.gitmodules added yatl to submodules Feb 24, 2019
.travis.yml do not test 3.5 on bionic Aug 18, 2019
ABOUT admin based on bootstrap, thanks Paolo Dec 24, 2012
CHANGELOG new command line options May 2, 2019
LICENSE remove simplejson May 10, 2016 initial commit Nov 23, 2011
Makefile fixed logic for running tests and using welcome for testing, thanks P… May 6, 2019
README.markdown removing pycrypto hard dep Oct 3, 2016
VERSION R-2.18.5 Apr 8, 2019 changing the to make it run with py3 Sep 5, 2018
appveyor.yml Add Python 3.7 to AppVeyor Feb 2, 2019 description % should not be escaped, reverting May 25, 2019 remove pg8000 Feb 26, 2018
tox.ini remove 2.6 from CI configs May 10, 2016 some cleanup and better use of die() function, thanks paolo Apr 10, 2019



web2py is a free open source full-stack framework for rapid development of fast, scalable, secure and portable database-driven web-based applications.

It is written and programmable in Python. LGPLv3 License

Learn more at

Google App Engine deployment

cp examples/app.yaml ./
cp handlers/ ./

Then edit ./app.yaml and replace "yourappname" with yourappname.

Important reminder about this GIT repo

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

If you have an existing repository, the commands below need to be executed at least once:

git submodule update --init --recursive

If you have a folder gluon/dal you must remove it:

rm -r gluon/dal

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.

Documentation (

Docs Status


Build Status MS Build Status Coverage Status

Installation Instructions

To start web2py there is NO NEED to install it. Just unzip and do:


That's it!!!

web2py directory structure

    VERSION                    > this web2py version                  > the startup script               > to run with third party servers
    ...                        > other handlers and example files
    gluon/                     > the core libraries
        packages/              > web2py submodules
        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)
        ...                    > 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/         > 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

You can’t perform that action at this time.