Leif K-Brooks wrote: > I'm writing a relatively simple multi-user public Web application with > Python. It's a rewrite of a similar application which used PHP+MySQL > (not particularly clean code, either). My opinions on various Web > frameworks tends to vary with the phase of the moon, but currently, I'm > planning to use Quixote. > > Needless to say, my application will need some kind of persistent data > storage. The previous PHP+MySQL application uses around 1.1GB of > storage, so something like PyPerSyst where everything is kept in memory > is out.
You might want to look at Schevo (http://schevo.org), an ODBMS and application development framework. Schevo builds on some of the concepts introduced in Pypersyst, and can use Pypersyst as its backend storage, but it can also use ZODB and Durus (and it is easy to switch between backends). Schevo provides schema evolution and migration features, enforces referential integrity and field constraints, enforces unique indexes (whether single field or multiple field keys), etc. All you have to do is describe your objects using a simple syntax such as this snippet from a weblog application that we are putting together as an example: class Author: """Authors write posts.""" name = f.string() password = f.hashedValue() email = f.string() _key(name) _icon('.apps.kuser') def __str__(self): return self.name class Post: """Posts contain content posted to the weblog.""" slug = f.string(doc='The short name that appears in the URL.') title = f.string() published = f.datetime() author = f.entity(allow=Author) excerpt = f.memo() content = f.memo() _key(slug) _icon('.filesystems.desktop') def __str__(self): return self.slug Schevo might not be quite ready for your particular needs, but the situation you describe is the target for Schevo. While most of our UI work has been with Qt, our next focus is on Nevow, which we have used in the past on a predecessor to what is now Schevo. I've used Quixote in the past, but I'm not sure how easy it would be to use it as the UI for a Schevo app. Most of our short-term efforts are going to be concentrated on Nevow and Plone for web applications, and Qt for GUI apps (and hopefully wxPython at some point). Matthew Scott and I will be giving a Schevo presentation at PyCon on the subject of "Developing Database Applications With Schevo". You can read our outline at http://schevo.org/doc/pycon2005/proposal. Good luck with your project. -- Patrick K. O'Brien Orbtech http://www.orbtech.com Schevo http://www.schevo.org Pypersyst http://www.pypersyst.org -- http://mail.python.org/mailman/listinfo/python-list