Digging the Paste Way

I'm using Python and Pylons for a project at work, and I deployed my application for the first time today.

I've mostly enjoyed using Pylons. Although it does suffer from Too Many Files Syndrome (which I'll try to talk about in a later post) and the javascript/AJAX stuff feels cobbled together and undocumented compared to other frameworks like Rails or Seaside.

It's basically just another MVC web framework, but it works and I like its philosophy of loosely coupled best of breed libraries. In particular, it's been great how easy it was to use SQLAlchemy instead of SQLObject.

SQLAlchemy is insanely powerful (though not as user friendly as I'd hoped) and is a great fit for our databases which don't necessarily conform to the schemas demanded by ActiveRecord or SQLObject. And If you take the time to build your model classes carefully, you can hide most of the complexity.

While I'm at it, I also out to give a shout ought to jQuery which I've been using alongside the Prototype Javascript Library that ships with Pylons. jQuery is totally awesome. I love it's markup oriented behavior concept. It's really a great way to think about writing Javascript.

Anyways, all that was just so I could mention how frickin cool Paste based web deployment is (Pylons uses Paste). Your entire web app gets packed up as a Python egg, which can then be installed on any machine (multiple versions can be installed too, and library version dependencies are handled by the Egg system so no need to worry about upgraded versions preventing rollbacks).

In order to launch the web app, all you need to do is have the Egg installed, put together a quick config file (specifying things like port, but also application specific things like database connection or data directories), and use the 'paster' command to launch it. I'm pretty sure this is "good stuff."

Update: Ian Bicking, Python web super hero, does a quick comparison between Turbo Gears and Pylons.

posted on: 02/06/2007 | path: /tech