Anyone out there using web2py?

Christopher Mahan picture Christopher Mahan · Sep 16, 2008 · Viewed 31.3k times · Source

Is anyone out there* using web2py?

Specifically:

  • In production?
  • With what database?
  • With Google Application Engine?

    • by "out there" I mean at stackoverflow.

Answer

massimo picture massimo · Oct 13, 2008

You are welcome to ask the same question on the google group. You will find more than 500 users there and some of them are development companies building projects for their clients.

My impression is that most of them use postgresql (that's what I do to) and some others use the Google App Engine. In fact web2py is the only framework that allows you to write code once and the same code will run on GAE, SQLite, MySQL, PostgreSQL, Oracle, MSSQL and FireBird (with the limitations imposed by GAE).

You can find the Reddish (reddit clone) appliance with source code for GAE here

Here you can find links to some productions app. Some are running on GAE.

@Armin:

Nothing is wrong with Django or Pylons. They are excellent frameworks. I have used them before developing web2py. There are a few things you can do with web2py that you cannot with them. For example:

  • web2py does distributed transactions with Postgresql, Armin requested this feature.
  • the Django ORM does not do migrations natively (see South), web2py does.
  • the Django ORM does not allow partial sums (count(field)) and group by, web2py does.
  • web2py can connect to multiple databases at once, Django and Pylons need to be hacked to do that, and
  • web2py has a configuration file at the app, not at the project level, like them.
  • webp2y logs all tracebacks server side for the administrator, Django and Pylons do not.
  • web2py programs often run on GAE unmodified.
  • web2py has built-in xmlrpc web services.
  • web2py comes with jQuery.

There are many things that web2py does better (using a more coherent API) and faster (processing templates and generating SQL for example). web2py is also very compact (all modules fit in 265K bytes) and therefore it is much easier to maintain than those competing projects.

You only have to learn Python and 81 new function/classes (50 of which have the same names and attributes as corresponding HTML tags, BR, DIV, SPAN, etc. and 19 are validators, IS_IN_SET, IS_INT_IN_RANGE, etc.).

Anyway, the most important issue is that web2py is easier than Django, Pylons, PHP and Rails.

You will also notice that web2py is hosted on both Google Code and Launchpad and there are not open tickets. All past issues have been resolved in less than 24 hours.

You can also check on the google mailing list that all threads (10056 messages today) ended up with an answer from me or one of the other developers within 24 hours.

You can find a book on web2py on Amazon.

Armin, I know you are the developer of Jinja. I like Jinja but have different design philosophies. Both Django and Jinja define their own template languages (and Jinja in particular has excellent documentation) but I do prefer to use pure Python in templates so that my users do no need to learn a template language at all. I am well aware of the pros and cons of each approach. Let's the users decide what they prefer. No need to criticize each other.

@Andre: db.table.field refers to the field object. 'table.field' is a field name. You can always pass a field object when a field name is required because str(db.table.field) is 'table.field'. The only case you are required to use a string instead of an object is when you need to reference by name a field that has not already been defined... perhaps we should move this discussion to the proper place. ;-)

I hope you will decide to give web2py a try and, whether you like it or not, I would love to hear your opinion.