close Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": No module named svn). Look in the Trac log for more information.

Version 16 (modified by cmlenz, 13 years ago) (diff)

--

Welcome!

Diva is a a lightweight web framework for Python that is built on top of WSGI and tightly coupled to the Genshi template engine. It also uses Babel for internationalization and WebOb for an more convenient abstraction on top of raw WSGI.

Big Fat Warning

The name diva was chosen for its negative connotation. Says Wikipedia:

The term is often used with a negative connotation. This derives from the implication that a star who is a "diva" is arrogant, difficult to work with, high-maintenance, manipulative, fussy, highly strung, privileged and demanding. He or she does not believe the law and accepted rules of courtesy apply to him or her.

So: You probably don't want to be using this. It's a sandbox where I play with various ideas for modern web application development, it doesn't make it easy to use a different template engine than Genshi, it doesn't help you with connecting to a relational database (or any kind of database, for that matter), it doesn't have fancy reusable widgets, and so on. And it's probably never going to do or have those things.

So why am I releasing this code in the first place? Because I don't like keeping spare time code to myself, and because it might serve as inspiration for others, or something like that.

If you're looking for a lightweight and well-designed web application toolkit for Python that doesn't have such a big fat warning, I'd recommend taking a good look at Werkzeug.

Examples

This framework is being used “in production” for my own personal sites http://www.cmlenz.net/ and http://scratchpad.cmlenz.net/. The code for those two sites will be made available after I've cleaned it up a bit.

Two simple examples are also included in the repository.

Documentation

Some very early and incomplete documentation:

Acknowledgements

Much of this framework has been built on ideas and patterns extracted from the Trac project, and many other parts have been inspired by other frameworks and libraries.