Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Anyone out there using web2py? [closed]

Is anyone out there* using web2py?

Specifically:

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

    • by "out there" I mean at stackoverflow.
like image 698
Christopher Mahan Avatar asked Sep 16 '08 20:09

Christopher Mahan


People also ask

Is web2py open source?

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python.

Is web2py secure?

web2py is built for security. This means that it automatically addresses many of the issues that can lead to security vulnerabilities, by following well established practices.

How to run web2py?

web2py requires no installation. To get started, unzip the downloaded zip file for your specific operating system and execute the corresponding web2py file. Attention, to run web2py on Windows from source you must install first Mark Hammond's win32 extensions from http://sourceforge.net/projects/pywin32/ .


2 Answers

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.

like image 181
massimo Avatar answered Oct 17 '22 06:10

massimo


I'm using web2py for a small web app. It's running the HITs on a Mechanical Turk project, and giving me an interface to control and visualize them. I started on Google App Engine, but then got sick of the little annoyances of not having direct database access and having to wait forever each time I want to upload my code, and moved to a local server with postgres. GAE makes most things harder in order to make a few scaling things easier... stay away from it unless you really need their scaling help.

I like web2py a lot. Compared to Django and Ruby on Rails, it's WAY easier to learn and get going. Everything is simple. You get stuff done fast. Massimo is everywhere solving your problems (even on this board haha).

like image 27
toomim Avatar answered Oct 17 '22 05:10

toomim