Contribute Media
A thank you to everyone who makes this possible: Read More

Creating Rich Client Applications Using Dabo


Creating Rich Client Applications Using Dabo

Presented by Ed Leafe and Paul McNett

While web applications seem to get all the attention these days, many businesses still rely on desktop, or "rich client", applications to run their business. For those who prefer to do their coding with Python, Dabo is the only full-featured desktop app framework.

In this tutorial, we'll cover the general structure and approach to application development used in Dabo, including lots of interactive work where we will all develop applications that will be able to query a database, display the results, allow the user to edit the data, and then save it back to the database. We will cover the various tools available in Dabo to help you develop your applications, and how they work together.

Intended Audience

Developers with basic to intermediate Python experience.

Class Outline

Introduction: The thinking and design approach behind the framework. (15 min).

  • Explanation of the framework design. Frameworks are great if you're working with them, but not if you're constantly fighting them! We'll outline the various parts of the framework, and how they work together to create applications.

Building an app in 30 seconds. (15 min)

  • You can use the AppWizard to create a completely functional CRUD application in less than 30 seconds. We'll demonstrate how to use the AppWizard, and how you can build on and further customize the application it creates.

The primary non-UI classes in Dabo (15 min)

  • There are lots of classes in Dabo, but only a few main ones that are used in every app. This section will cover them: the application class, the business object class, and the DBAPI data adapter class.

Introduction to the Dabo Tools (30 min)

  • One of the benefits of a framework is that the mundane, repetitive tasks are handled by the framework, leaving you to focus on the creative parts of app development. In this section we'll discuss several of the visual tools available to help you create Dabo applications faster and easier.

Developing an actual application, part 1 (15 min)

  • Talk is fine, but here's where we begin creating an actual application. Attendees will learn how to create a new Dabo app, along with database connections, menus and a main form. In the second half of the tutorial we'll use this app as the basis for more complex development.


Overview of UI Classes (30 min)

  • This is where we talk about the "rich" in "rich client". Dabo has a full set of UI widgets, based on the wxPython toolkit. We've taken those widget classes and added a consistent interface, so that the developer uses the same properties and methods to accomplish the same thing in all the classes, making developing smoother and more intuitive. We'll cover all of the most-commonly used controls, and how to work with them.

Developing an actual application, part 2 (30 min)

  • The basic app created in the first half was an impressive result for such a short amount of time, but here's where we'll start to make it more interesting. We'll create several related business objects, bind them to the UI elements, and have it all work seamlessly with a database. After that, we'll show how to create and run reports against that same data. We'll then wrap up by explaining how to deploy your finished application.

Rich Client Web Applications with Dabo (10 min)

  • HTML web apps are trying to get a richer client experience through the increased use and sophistication of Javascript-based tools. That's great if you like spending your time in Javascript, but not so great if you are a Python dev. We take the opposite approach: taking our rich-client apps and deploying them over the web so that users can run them without first installing the app.

Future plans for Dabo (5 min)

  • Dabo is being actively developed, and we have plans for future enhancements that we'll cover here.

Wrap-up and Final Questions (15 min)


Students do not need to have a computer, but they will not get as much out of the session if they cannot actively participate in creating the example applications. They should have the following prerequisites installed, using the latest available stable releases except where specific version numbers are indicated:

  • Python 2.5.4
  • wxPython unicode
  • MySQLdb
  • reportlab
  • Python Imaging Library
  • Dabo 0.9.2


Improve this page