Revision 108 as of 2007-10-14 14:40:22

Clear message

Web Frameworks for Python

A Web framework is a collection of packages or modules which allow developers to write Web applications (see WebApplications) or services without having to handle such low-level details as protocols, sockets or process/thread management.

As a developer using a framework, you typically write code which conforms to some kind of conventions, with the benefit being that most of the code can be concerned with the logic of the application, rather than working out how to process incoming network messages, spawn processes, work out which part of the application should be invoked, and so on.

Some packages can be considered 'components' in that they provide abstractions only for certain things (eg. incoming requests, outgoing responses, state handling).

Some other packages can be described as 'frameworks' as they provide many more abstractions and mechanisms (eg. database access, presentation of Web pages). Since a non-trivial Web application will require a number of different kinds of abstractions, often stacked upon each other, those frameworks which attempt to provide a complete solution for applications are often known as "full-stack" frameworks in that they attempt to supply components for each layer in the stack.

High Level Full-Stack Frameworks

A web application may use a combination of a base HTTP application server, a storage mechanism such as a database, a template engine, a request dispatcher, an authentication module and an AJAX toolkit. These can be individual components or be provided together in a high-level framework.

These are the main high-level frameworks. Many of them include components listed further down the page.

Templating Engines

Templating engines allow you to separate your application code from the presentation. Many of these engines can be used alone or within a high-level framework.

HTTP Frameworks

The packages provide the base 'application server', either running as its own independent process or upon Apache. You can then bring your own applications, templating engines and other components to run on top of it.

Authorisation Toolkits

These allow you to add authorisation to your web applications.

Request Dispatchers

A dispatcher takes the requests (i.e. the URL that a user types in) and then provides the response (i.e. the web application that creates the webpage that the user sees).

Form Handling

Content Management Systems

Some CMS' allow you to build application like functionality upon them. See ContentManagementSystems for more details.

Other Frameworks/Components

These components are not categorised at the moment, not all are still developed.

Books and Articles

Unable to edit the page? See the FrontPage for instructions.