The Quixote Web Framework

Last Modified: 25 Jan 2021


Quixote is a framework for writing Web-based applications using Python. Its goals are flexibility and high-performance, in that order. Quixote applications tend to be structured like traditional applications. The logic for formatting web pages consists of Python classes and functions. Separation of presentation logic and "back-end" logic is not enforced by Quixote. Instead, you are encouraged to use traditional techniques. For example, a solution is to put presentation logic in its own sub-package.

There are three major versions of Quixote, version 1, 2 and 3. Versions 1 and 2 are similar to each other but incompatible. Version 1 is no longer actively maintained. Version 3 of Quixote requires Python 3 but is otherwise similar to Quixote 2. Versions 2 and 3 of Quixote are actively maintained and are used by numerous public sites.

There is a small demo as part of the Quixote distribution. It provides a basic example of a Quixote application and could also serve as a template for new applications.



The latest development version of the documentation is available for online browsing. An introductory guide to version 2.x called the Quixote Cookbook is also available.


While Quixote is actively maintained, the frequency of releases is low. Existing Quixote users seem happy with the features Quixote provides, generally it just gets out of your way and lets you write application code. In fact, a number of users have not bothered to make the switch from version 1.x to version 2.x.

The focus of recent development has been to fix bugs, improve standards compliance, and to increase Quixote's flexibility (as long as that does not require major incompatible changes). The git repository is available via github. Developer discussion occurs on the quixote-users mailing list.

Send comments to webmaster at quixote.ca.