[Edu-sig] Simple Python database application for self-study and training

Jason Cunliffe Jason Cunliffe" <jasonic@nomadics.org
Tue, 13 May 2003 20:54:58 -0400


> I am on the lookout for a simple but complete GUI database application
> (Python, wxPython, MySQL) that can be used for self-study and training. I
> have seen most of the necessary elements in textbooks, HowTo's, etc., but I
> think something like a simple collection management database (stamps,
> videos, cooking recipes, etc.) would be a very good starting point for
> people who are new to programming and need to get an overview of how GUI,
> database, and programming logic fit together.

hmm... Zope may be an excellent choice:
http://zope.org

Although Zope is deep and complex, it can be used out-of-the-box very quickly
and easily. You can grow into it and develop custom features, or take it at face
value, learn from existing modules and adapt them. It is notable for and intense
and very responsive community and a big library of plugins.

Zope is an object 'publishing' system written in Python which includes built in
persistent object database called ZODB, and several internet servers HTTP, FTP,
WEBDAV etc.. There are modules and interfaces for BerkeleyDB, MySQL, and more.
Most of these also have standalone libraries including Zope's own ZODB which can
be run directly with or without Zope:
http://www.amk.ca/zodb/zodb-zeo.html
http://www.zope.org/Documentation/Articles/ZODB1

You can run Zope on many platforms. Code/data/sites or parts of them can be
imported and exported as simple .zexp cross-platform binary files. This means
you can test and develop locally on a PC or laptop, but just as easily across a
LAN or the Internet.

You can script and access Zope in many ways, but typically you use a web-browser
with an GUI interface featuring simple trees and input forms. A Zope 'site' is
by default a web site whose contents are maintained in a ZODB [Zope Object Data
Base]. Though it my include modules to access external databases, or even
anything in the file system :-)
Plus there is always FTP access available to you, so that any FTP client can
access the ZODB as well as ancillary scripts and files.

TIP: Among many developer tools for Zope, I highly recommend Jerome Alet's
ZShell, which uses a familiar shell metaphor. This helps one bypass many mouse
clicks or diving too deeply into Zope's own syntax. It can be overwhelming,
especially when you just want to focus on the problem, not the underlying
system. ZShell is also a great way to 'learn' Zope.
http://www.librelogiciel.com/software/
http://www.librelogiciel.com/software/ZShell/action_Presentation

Zope handles well some nasty problems of database + GUI development. Thanks to
its web interface, it is easier to explore you own look'n'feel design GUI
issues. It has built-in search, and versioning which is rather remarkable --
multiple levels of undo for the whole damn thing!

Warning: Zope is addictive and may cause sleep deprivation. It may be overkill
for what you want. But remember, just because all those features are there, you
don't have to use them. You may really want to learn more about low-level
database programming, or perhaps you are more interested the USE and interface
issues. Either way, Zope provides an incredible laboratory which can be
installed and running in 15 minutes :-)



good luck !
Jason