Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tree: ac3e1e2e9a
Fetching contributors…

Cannot retrieve contributors at this time

34 lines (28 sloc) 1.9 KB
layout title

The Philosophy

The slogan is: "Think about the ideal way to write a web app. Write the code to make it happen."

This is literally how I developed I wrote a web application in Python just imagining how I wanted the API to be. It started with import web, of course, and then had a place to define URLs, simple functions for GET and POST, a thing to deal with input variables and so on. Once the code looked right to me, I did whatever it took to make it execute without changing the application code -- the result was

In response to someone complaining about having "yet another template language", I wrote a bit more about my philosophy:

You don't have to use it -- each part of is completely separate from the others. But you're right, it is "yet another template language". And I'm not going to apologize for it.

The goal of is to build the ideal way to make web apps. If reinventing old things with only small differences were necessary to achieve this goal, I would defend reinventing them. The difference between the ideal way and the almost-ideal way is, as Mark Twain suggested, the difference between the lightning and the lightning bug.

But these aren't just small differences. Instead of exposing Python objects, allows you to build HTTP responses. Instead of trying to make the database look like an object, makes the database easier to use. And instead of coming up with yet another way to write HTML, the template system tries to bring Python into HTML. Not many other people are really trying to do that.

You can disagree that these ways are better and say why. But simply criticizing them for being different is a waste of time. Yes, they are different. That's the whole point.

Jump to Line
Something went wrong with that request. Please try again.