There are many options for building web applications with Python. Python’s powerful yet flexible nature makes it perfect for this task. It’s a good idea to know what’s available before going in that direction, though. Perhaps one of the many existing options will suit your needs and save you a ton of work.
To make it easier to know at a glance what frameworks are out there, the following list shows 30 web frameworks that are active and have more than 1,000 monthly downloads at the time of this writing. For each framework, the list presents the following information:
Appier
Joyful Python Web App development.
Appier is an object-oriented Python web framework built for super-fast app development. It’s as lightweight as possible, but not too lightweight. It gives you the power of bigger frameworks, without the complexity.
Hive Solutions Lda.
*****
2.6 to 3.5
Apache
Adequate
None
MongoDB
Jinja2
Aspen
A Python web framework that makes the most of the filesystem. Simplates are the main attraction.
Aspen maps your URLs directly to the filesystem. It’s way simpler than regular expression routing or object traversal.
Gratipay, LLC
******
2.6, 2.7
MIT
Adequate
IRC
Any
Python, Jinja2, Pystache
BlueBream
The Zope Web Framework.
BlueBream is an open source web application server, framework, and library created by the Zope community and formerly known as Zope 3. It is best suited for medium to large projects split into many interchangeable and reusable components.
Zope Foundation and Contributors
*
2.6, 2.7
ZPL
Extensive
Mailing list
ZODB
ZPT
Bobo
Web application framework for the impatient.
Bobo is a lightweight framework for creating WSGI web applications. Its goal is to be easy to use and remember.
Jim Fulton
*
2.6 to 3.5
ZPL
Extensive
Mailing list
Any
Any
Bottle
Fast and simple WSGI framework for small web applications.
Bottle is a fast, simple, and lightweight WSGI micro web framework for Python. It is distributed as a single-file module and has no dependencies other than the Python Standard Library.
Marcel Hellkamp
******
2.6 to 3.5
MIT
Extensive
Mailing list, IRC, Twitter
Any
Simple templates, Jinja2, Mako, Cheetah
CherryPy
A Minimalist Python Web Framework.
CherryPy allows developers to build web applications in much the same way they would build any other object-oriented Python program.
CherryPy Team
******
2.6 to 3.5
BSD
Comprehensive
Mailing list, IRC
Any
Any
Clastic
A functional Python web framework that streamlines explicit development practices while eliminating global state.
Clastic was created to fill the need for a minimalist web framework that does exactly what you tell it to, while eliminating common pitfalls and delays in error discovery.
Mahmoud Hashemi
*
2.6, 2.7
BSD
Basic
None
Any
Any
Cyclone
Facebook’s Tornado on top of Twisted.
Cyclone is a web server framework for Python that implements the Tornado API as a Twisted protocol.
Alexandre Fiori
***
2.6, 2.7
Apache
Adequate
None
Twisted adbapi, redis, sqlite, mongodb
Cyclone templates
Django
The web framework for perfectionists with deadlines.
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Django Software Foundation
**********
2.6 to 3.5
BSD
Comprehensive
Mailing lists, IRC
Django ORM
Django templates, Jinja2
Falcon
An unladen web framework for building APIs and app backends.
Falcon is a minimalist, high-performance web framework for building RESTful services and app backends with Python.
Kurt Griffiths
****
2.6 to 3.5
Apache
Extensive
Mailing list, IRC
Any
Any
Fantastico
Pluggable, developer-friendly content publishing framework for Python 3 developers.
Python 3 MVC web framework with built-in capabilities for developing web services and modular web applications.
Radu Viorel Cosnita
*
3.3, 3.4, 3.5
MIT
Adequate
None
Fantastico ORM
Any
Flask
Web development one drop at a time.
A micro framework based on Werkzeug, Jinja2, and good intentions.
Armin Ronacher
*********
2.6, 2.7, 3.3, 3.4, 3.5
BSD
Comprehensive
Mailing list, IRC
Any
Jinja2
Giotto
Web development simplified. An MVC framework supporting Python 3.
Giotto is a Python web framework. It encourages a functional style where model, view, and controller code is strongly decoupled.
Chris Priest
**
2.7, 3.3, 3.4, 3.5
Own
Adequate
Google group
SQLAlchemy
Jinja2
Grok
A smashing web framework.
Grok uses the Zope Component Architecture and builds on Zope concepts like content objects (models), views, and adapters. Its simplicity lies in using convention over configuration and sensible defaults when wiring components together.
Grok Team
***
2.6, 2.7
ZPL
Extensive
Mailing list
ZODB
Zope page templates
kiss.py
MVC web framework in Python with Gevent, Jinja2, and Werkzeug.
Stanislav Feldman
*
2.6, 2.7
Own
Poor
None
Pewee
Jinja2
Klein
Werkzeug + twisted.web.
Klein is a micro framework for developing production-ready web services with Python. It’s built on widely used and well-tested components like Werkzeug and Twisted.
Amber Brown
*****
2.6 to 3.5
MIT
Adequate
IRC
Any
Twisted templates
Morepath
A micro web framework with superpowers.
Morepath is a Python WSGI micro framework. It uses routing, but the routing is to models. Morepath is model-driven and flexible, which makes it expressive.
Martijn Faassen
**
2.6 to 3.5
BSD
Extensive
Mailing list, IRC
Any
Any
Muffin
Web framework based on Asyncio stack.
Muffin is a fast, simple, and asyncronous web framework for Python 3.
Kirill Klenov
*****
2.6 to 3.5
MIT
Poor
None
Any
Any
Pylons
A framework to make writing web applications in Python easy.
Pylons 1.0 is a lightweight web framework emphasizing flexibility and rapid development.
Ben Bangert, Philip Jenvey, James Gardner
****
2.6, 2.7
BSD
Extensive
Mailing lists, IRC
SQLAlchemy
Mako, Genshi, Jinja2
Pyramid
The start small, finish big, stay finished framework.
Pyramid is a general, open source, Python web application development framework. Its primary goal is to make it easier for a Python developer to create web applications.
Chris McDonough, Agendaless Consulting
******
2.6 to 3.5
BSD derived
Comprehensive
Mailing lists, IRC
Any
Any
Tornado
A Python web framework and asynchronous networking library, originally developed at FriendFeed.
A simple web framework with asynchronous features that allow it to scale to large numbers of open connections, making it ideal for long polling.
*********
2.6 to 3.5
Apache
Adequate
Mailing list, wiki
Any
Tornado templates
TurboGears
The web framework that scales with you.
TurboGears is a Python web framework based on the ObjectDispatch paradigm. It is meant to make it possible to write both small and concise applications in Minimal mode or complex applications in Full Stack mode.
TurboGears Release Team
***
2.6, 2.7
MIT
Extensive
Mailing list, IRC, Google+
SQLAlchemy
Genshi
Twisted
Building the engine of your Internet.
An extensible framework for Python programming, with special focus on event-based network programming and multiprotocol integration. Twisted includes twisted.web, a web application server based on the concept of resources.
Glyph Lefkowitz
*******
2.6 to 3.5
MIT
Adequate
Mailing list, IRC
Any
twisted.web.template
Uliweb
Unlimited Python web framework.
Uliweb is a full-stacked Python-based web framework. It has three main design goals: reusability, configurability, and replaceability. Its functionality revolves around these goals.
Limodou
*
2.6, 2.7
BSD
Adequate
Mailing list
Uliorm
Uliweb
Watson
It’s elementary, my dear Watson.
A framework designed to get out of your way and let you code your application rather than spend time wrangling with the framework. It follows the “convention over configuration” ideal.
Simon Coulton
*
3.3, 3.4, 3.5
Own
Adequate
Mailing list
Any
Jinja2
web.py
Think about the ideal way to write a web app. Write the code to make it happen.
web.py is a web framework for Python that is as simple as it is powerful.
Anand Chitipothu
*****
2.6, 2.7
Public Domain
Adequate
Mailing list
web.database
Templetor
web2py
Everything in one package with no dependencies.
Free open source full-stack framework for rapid development of fast, scalable, secure, and portable database-driven web-based applications.
Massimo Di Pierro
*
2.6, 2.7
LGPL 3
Extensive
Mailing list
DAL
web2py
webapp2
Taking Google App Engine’s webapp to the next level!
webapp2 is a lightweight Python web framework compatible with Google App Engine’s webapp.
Rodrigo Moraes
****
2.6, 2.7
Apache
Extensive
Mailing list
Google datastore
Jinja2, Mako
WebPages
A Python web framework.
This project was designed for web developers who want to do more in less time. To create a new project with Hello World and a database connection, you only need a few minutes.
Anton Danilchenko
*
3.3, 3.4, 3.5
MIT
Poor
WebPages ORM
WebPages templates
wheezy.web
Python’s fastest web framework.
A lightweight, high-performance, high-concurrency WSGI web framework with the key features to build modern, efficient web applications.
Andriy Kornatskyy
***
2.6 to 3.5
MIT
Adequate
None
Any
Jinja2, Mako, Tenjin, Wheezy