Camelot 101

Summary

[EuroPython 2012] J Dierckx A Cuni - 4 JULY 2012 in "Track Pizza Napoli"

Description

Camelot , as seen on EuroPython 2010 and 2011 is a framework for developing desktop database applications at warp speed. It is to desktop applications what Django is to web applications. Some see it as a replacement for MS Access, but its tight integration with SQLAlchemy enables a vast amount of more advanced features and possibilities. This tutorial style course will enable you to get started with your own Camelot project. We will tackle the hurdles met when going through the lifecycle of a desktop application First Example : We start our little Camelot project, have a look at the concepts and terminology used within Camelot. We go through the different parts of the application and look at the possibilities to customize them. Declarative Models and Views : Then we move on by defining a relational model and use introspection together with a declarative definition of our view to generate table and form views. We look at the various options that can be used to create and reuse form and table definitions. Actions and Reports : Next we’ll dive into the details of actions the user can trigger, we discuss and experiment with the standard actions Camelot offers. One of those actions can be the generation of a nicely formatted Word document. Advanced Model Definition : Once an application grows, more advanced model definition is needed. We will try out some advanced features of SQLAlchemy and see how they interact with the graphical interface. Fine tuning of the GUI : Here we have a look at how Qt’s model-view-delegate framework works and how it is used by Camelot. This will enable us to fully customize the graphical interface to our needs. Deployment and Users : The last step of the development process is getting the application to the users. We will discuss the deployment options and list the things to be aware of when submitting an application to its users. Q & A : Throw all Camelot questions you have in the group and try to resolve them together.