Widgets, widgets, widgets... all in a Python skin

Reahl: A web application framework purely in Python

Jane Elizabeth
© Shutterstock / Hand Robot

Save yourself from the trouble of code switching! Reahl is a Python-only web application framework that packs quite a punch for developers looking to work in useful abstractions without switching out to another programming language.

Code switching is a common phenomenon among both developers and people who speak more than one language. Although sometimes people need multiple languages to fully express themselves, things get lost in translation. With Reahl, web developers are able to continue working in one language without needing to reach for another programming language.

Reahl is a web application framework that allows developers to work purely in Python. It’s actually pretty easy to keep track of complex abstractions, since there’s no pesky translation to other languages. Not having to worry about compatibility issues or compilation errors certainly takes a load off.

Essentially, Reahl is bringing functionality back to Python for web applications. Instead of being designed for the frontend of a customer-facing website, it’s set up for internal tools and line of business applications. While adhering to object, oriented design principles, Reahl optimizes for design clarity first and speed or memory when needed.

The Reahl framework is made up of a number of components, as seen below:


Reahl framework components. Source.

The component framework is the infrastructure that supports Reahl’s component-based development. Developers can build domain models annotated with information used by user interface code. The web framework gives developers all the tools they need to create their apps with web-based UIs.

The end-user functionality containers both the domain models and logic as well as the related web user interfaces. As for the development tools, all of the development for Reahl is done inside a Vagrant machine. This section includes the workstation used to develop, as well as a number of helpful components for development purposes.

This web framework uses familiar concepts from GUI programming like reusable widgets and events to keep things simple for developers. Pages are essentially widgets, composed of other widgets. These complex widgets can include looks and rich behavior for client and server-side. However, instead of using a mixture of HTML, CSS, or JavaScript, all of your Reahl widgets are in Python.

SEE ALSO: Logging for the lazy: Python library makes logging simple

Getting Reahl

Want to try out Reahl? It’s readily available from GitHub and the Reahl site. However, you will need version 2.7 of Python 2 or Python 3.3. Reahl is installed through pip, with a few extras. It also requires a few other bits of software on platforms other than Windows, including:

  • Libxml, libxslt
  • Libsqlite
  • Python headers for compiling the above
  • A C/C++ compiler (such as gcc)
  • Cython

There’s an impressive amount of documentation available here, along with a getting started guide and a programmer’s guide. There’s even a tutorial available for Reahl 4.0 that starts from the beginning and dives deep into the various features.

Jane Elizabeth
Jane Elizabeth is an assistant editor for

Inline Feedbacks
View all comments