Camelot – Eine MS Access Alternative (Update)
Montag, Januar 10th, 2011Ich wünsche allen Lesern des Blogs und des Ubuntuusers Planeten ein Frohes neues Jahr.
Heute möchte ich Camelot vorstellen. Camelot ist ein frei programmierbarer Datenbank Frontend für den Desktop. Camelot ist in Python programmiert und verwendet Qt4 als Toolkit.
Camelot lässt sich in etwa mit MS Access vergleichen. Man kann einfach und schnell eine grafische Oberfläche für eigene Datenbanken erstellen. Allerdings ist Camelot nur eine Alternative zu Access, kein Ersatz. Es ist nicht möglich, Formulare oder Reports von Access Datenbanken zu importieren. Für die Erstellung einfacher Oberflächen sind Python Kenntnisse hilfreich, aber nicht zwingend erforderlich. Die sogenannten Models werden mit einem Texteditor erstellt und bearbeitet. Es gibt keinen grafischen Editor zum “zusammenklicken” der Oberfläche oder der Datenbank.
Camelot ist nicht nur, wie erwähnt, in Python programmiert sondern auch für das Datenbank Interface wird Python verwendet. Als ORM Mapper kommt Elixir zum Einsatz. Formulare kann man automatisch generieren oder individuell gestalten. Camelot bringt bereits viele vordefinierte Elemente zur Anzeige von Daten, sogenannte Delegates, mit. Zum Beispiel ein Eingabeelement für ein Datum inklusive einer Kalenderansicht oder ein Anzeigeelement für Bilder. Es lassen sich auch Reports erstellen. Hierfür wird HTML zusammen mit der Template Engine Jinja2 verwendet. Alternativ lassen sich Vorlagen mit Word erstellen.
Elixir baut auf SQLAlchemy auf. Es lassen sich alle Fähigkeiten und Datenbanken verwenden, die SQLAlchemy bietet, darunter auch Microsoft SQL Server.
Installation
Camelot benötigt eine möglichst aktuelle Version von PyQt. Die Version in Ubuntu Maverick ist leider fehlerhaft und die in Lucid ist zu alt. Es ist daher erforderlich, mindestens PyQt4.8 zu installieren. Man kann sich entweder die Sourcen selbst compilieren oder das Kubuntu Beta Backports PPA von Launchpad verwenden (nur ab Maverick möglich).
sudo apt-add-repository ppa:kubuntu-ppa/beta
Die weitere Installation ist auf der Projektseite beschrieben.
Camelot ist eine durchaus brauchbare Alternative zu Access, in einigen Bereichen vielleicht sogar besser. Durch Python kann man auf den vollen Funktionsumfang der Klassenbibliothek zugreifen und damit zum Beispiel auch Emails verschicken, auf beliebige Geräte oder Daten zugreifen, per XML-RPC oder SOAP auf Webdienste zurückgreifen und vieles mehr. Durch die Verwendung von Qt lassen sich auch wesentlich komfortablere Oberflächen erstellen.
Wer seine Webseiten ebenfalls mit Python erstellt kann für die Datenbank Schnittstelle ebenfalls Elixir verwenden und damit die Models von Camelot recht einfach auf die Webanwendung übertragen. So ließe sich zum Beispiel sehr einfach ein komfortabler Backend für eine Webseite erstellen. Auch Jinja lässt sich für die Webseite als Template Engine einsetzen. Das reduziert den Lernaufwand, da man die Programmiersprache, die Datenbank Schnittstelle und die Template Engine mehrfach verwenden kann.
Natürlich lassen sich mit Camelot auch anderen Anwendungen wie eine DVD Datenbank, ein Adressbuch, eine Materialverwaltung oder eine ToDo Liste programmieren. Alles, was eine Datenbank benötigt, sollte man mit Camelot auch realisieren können.
(UPDATE): Da aus dem Blog nicht ganz hervor geht, wie Camelot arbeitet, habe ich im Ubuntuusers Forum eine kurze Einführung geschrieben
