Anyone out there using web2py? [closed]
Asked Answered
M

24

67

Is anyone out there* using web2py?

Specifically:

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

    • by "out there" I mean at stackoverflow.
Maury answered 16/9, 2008 at 20:42 Comment(0)
T
105

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.

Tahitian answered 13/10, 2008 at 4:23 Comment(4)
+1 "I do prefer to use pure Python in templates". Actually is why i use webpy for my project. Time to learn web2py too.Malorie
do you mind editing this answer to indicate when the info was updated (just to make sure i'm not reading outdated stuff)Shaunshauna
I do not seem able to edit it but yes. this information is outdated. Please look for updated info in the book web2py.com/book. Here is an excellent web2py site in production tenthrow.comGrosvenor
Given a choice of which takes lesser time to code/develop efficiently, web2py is certainly the winner!!Preachment
T
15

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).

Technetium answered 25/8, 2009 at 0:17 Comment(0)
T
13

I started using web2py about 6 month ago. I choose it, because I wanted to move from PHP to Python, to have a more object-oriented approch because of the language featrues of python.

The all-in-one approach of web2py is really amazing and makes the start very fast.

As a former symfony user I soon started to miss Components and Forms that aren't dependend on table structure.

Just with a simple registration form, I could not find a way to do the Form DRY. For me the real bugger was the form validation. I forgot the details, but I ended up with having form validation in the forms itself. Because some thing just didn't work else.

Also the naming concept of capitalised words with that lot of repeated chars is just not my thing.

dba.users.name.requires=IS_NOT_EMPTY()
dba.users.email.requires=[IS_EMAIL(), IS_NOT_IN_DB(dba,'users.email')]
dba.dogs.owner_id.requires=IS_IN_DB(dba,'users.id','users.name')
dba.dogs.name.requires=IS_NOT_EMPTY()
dba.dogs.type.requires=IS_IN_SET(['small','medium','large'])
dba.purchases.buyer_id.requires=IS_IN_DB(dba,'users.id','users.name')
dba.purchases.product_id.requires=IS_IN_DB(dba,'products.id','products.name')
dba.purchases.quantity.requires=IS_INT_IN_RANGE(0,10)

Sometimes the names have to be in quotes, sometimes not ... and if I looked at the examples or sites already made with web2py, I really didn't see that big step forward from using php.

I recommend you: Look if web2py works for you. It would be nice, because the community and especially massimo (the creator) are very helpful and nice.

Also you have a much quicker start, than with django, easier deployment and less hassle if you change your database models.

Transfer answered 7/10, 2008 at 15:11 Comment(1)
Coming from a Django, I can tell you that web2py does it this way because they actually let you use more than 1 database. The capitals are just a convention so you don't confuse the framework functions with your own.Wellfixed
P
12

As Massimo points out above, the team at tenthrow uses web2py for tenthrow.com

We did most of our development work during 2009. Our stack uses cherokee, web2py, postgresql, and amazon s3. We had done many python web implementations prior to this on a variety of frameworks and backends. To say that we simply could not have done tenthrow so quickly and easily without web2py is an understatement. It's the best kept secret in web development.

Poodle answered 30/9, 2010 at 0:49 Comment(0)
D
11

I am evaluating web frameworks for a long time now. I wrote my own (not open) frameworks in Perl and in PHP. Well, PHP has a builtin deadend and the whole infrastructure is still quite poor, but I did not want to go back to Perl, so I checked Python and the Python Web Frameworks like Django, Turbogears, Pylon and web2py. There are many things to think about, if you want to choose a codestack that is not your own and you will often scratch your head because there is still no "right way" to program things. However, web2py is my current favourite, because the author, despite beeing a "real programmer", keeps things easy! Just look at the comparison on web2py site - I was wondering why python frameworks like django or turbogears had to introduce such redundance and complicated syntax in their code - web2py shows, that it IS in fact possible to keep your syntax clean and easy!

@Armin: could you please specify you criticism? Where exactly do you see web2py "bypassing Python semantics"? I can not understand, what you mean. I must admit that I am not that deep into python right now, but I see no problem with the web2py code - in fact, I think it is brilliant and one of the best frameworks available today.

Dander answered 26/11, 2008 at 9:20 Comment(0)
R
7

I use web2py for academic purposes. About a year ago I published on pythonanywhere a digital text book for german grammar.

The resource requires authentication and looks like a little LMS with roles, activities and grades. It was my first experience of this kind. And it was a success because PHP was to difficult for me, and only web2py could provide a clear way to handle a database. With Python I could easily solve my problems as e. g. text analysis and downloading reports. As for database so SQLite was completely enough.

My students like the design and the way everything is functioning. So I am very satisfied with the results and going to develop other interesting applications for my university.

I think web2py is very good for applied linguists and L2 teachers, who are not as experienced in computer science as programmers. So that was my humble opinion.

Roodepoortmaraisburg answered 22/3, 2015 at 14:39 Comment(0)
S
6

I'm starting to use it with Postgresql. But a long way off production... I've also played with Zope V2 and Ruby on Rails and really love the approach of web2py.

Shimmer answered 29/9, 2008 at 11:29 Comment(0)
S
6

I vote for Web2py. I only have time to develop small but useful stuff for my own use.

Hopefully next month I will have an oppty to create an app that is perfect for Web2py and run on Google app engine.

Web2py = breath of fresh air!

Swart answered 3/8, 2009 at 18:54 Comment(1)
breath of fresh air over django?Fanaticism
H
6

We are using it with our website that teachers Chinese, www.dominochinese.com. Our host is pythonanywhere.com and we love the simplicity of it. I work on building stuff instead of wishing I could get stuff working. I worked with django for 1.5 years and I hated it. In a sense I feel web2py is the PHP but in python. It makes people quickly do stuff without going into object oriented programming, which can be really confusing for beginners to intermediate programmers.

Hannon answered 23/7, 2013 at 6:2 Comment(0)
G
5

I am not using web2py. But I had a look at the source code and it's horrible for so many reasons. For one the database definitions as well as the views and models and I don't know what, are evaluated against a global dictionary of values. It feels like PHP in that regard (it's bypassing Python semantics in name behaviour) and is very inefficient and I could imagine that it's hard to maintain.

I have no idea where all that fuzz about web2py is coming from lately, but I really can't see a reason why anyone would want to use it.

What's wrong with Django or Pylons? What does web2py do that you can't do with Django in a few lines of code with a better performance, code that's easier to read and on an established platform where tons of developers will jump in and fix problems in no time if they appear. (Well, there are exceptions I must admit, but in general the developers fix problems quickly)

Gunny answered 1/10, 2008 at 21:18 Comment(9)
The proliferation of "in web2py you do not need to import web2py stuff" as a "positive* point in its favour all over the official website is enough for me to never give it a serious look.Bratislava
It's a framework, not a library. Frameworks execute your code.Alannaalano
It seems, you are one of those people that don't understand "practicality beats purity", then. You go ahead and code things your way, i go ahead and do the same in a fraction of the time :)Stclair
Its the difference between magic and explicitness. Django actually went through a repository branch called "magic removal". Neither architecture is completely superior to the other.Wellfixed
you don't specify what is wrong with web2py. the source code argument is not any longer true (if it ever was).Pisciform
I had a very hard time to use web2py with nose, because of web2py's import mechanism (how can nose know about the web2py global environment?). It took a weekend to write a nose plugin to get it working, whereas most other python web stacks will be rocking with nose in the time it takes to install nose and type "nosetests". Web2py's import mechanism is thus a major drawback when you need to use other python tools on your code, as they won't have a clue what is going on. It is a shame as web2py has many other nice features.Discontinuity
simplicity of use and small code base which allows anyone understand the framework internals are main advantages of web2py. why use big complicated frameworks if you can achieve the same results by much simpler and easily understandable framework with comparable coding effort?Tamboura
-1 Could you explain your reasoning behind web2py's inefficiency? Do you have any benchmarks comparing similar operations in django and web2py? I'm not ripping on django (i love it!) but your criticisms are not backed up by evidence. "I had a look at the source code and it's horrible for so many reasons. For one.... " but you only list one reason, and you don't explain why it's bad. And your "imaginings" that it's hard to maintain don't hold much weight. Also, "easier to read" is subjective --i find pure python templates and w2p's ORM make my code easier to read, but opinions will vary.Lewd
Lastly... "established platform"? Are you talking about the framework itself or the platform it runs on? You mean perhaps "and on a well-known platform where tons of developers will jump in." I see your point on this one (although from the w2p mailing list, nearly all bugs are squashed very quickly, and new features are often added mere hours after someone asks if it's possible). But there probably are more developers committing to django/pylons. So you say "I haven't used it, but it competes with a tool I like, so it sucks and it's inefficient and what does it do that my tool doesn't?" Why?Lewd
C
5

I am using web2py for 2 years, this web frameworks is great and unique. Easy to use, accept a lot of DB's but the best DB supported is postgres. I have created 2 projects with web2py and a really like how easy it is. 1 project is a financial management and other a mail tracker, both in production systems (4 linux lpar with postgres) running fine. web2py is a good choice

[small application created with web2py 2.5.1] updated

http://freitasmgustavo.pythonanywhere.com/calculoST/

Chunchung answered 8/1, 2013 at 10:36 Comment(0)
F
4

Actually it's using MySQL, but it could switch to postgresql at a moments notice as web2py is so diverse :)

Fbi answered 9/12, 2008 at 19:29 Comment(0)
E
4

I have been evaluating web frameworks for sometime now. I prefer web2py because it's easy to follow, compact yet powerful.

Empress answered 2/10, 2009 at 1:29 Comment(0)
S
4

I like it because it is so tiny that I can easily distribute with my application.

Shaquitashara answered 16/1, 2010 at 12:32 Comment(0)
F
4

We started to use Web2py 7 months ago. We already have one application in production in El Prado (National Museum in Spain). We developed a app to check and automate all the systems, to make servers statistics, access statistics, etc.

Ferdinandferdinanda answered 20/9, 2010 at 8:40 Comment(0)
R
4

I use it in production on Google Appengine for www.crowdgrader.org. I store data as follows:

  • The core metadata, where I need ACID, is stored in Google Cloud SQL, which is working very well for me. For big text fields, I store in Google Cloud SQL the key, and in the Datastore the key-value.
  • The text typed by users is stored in the Google Datastore, see above, with the key stored in Cloud SQL.
  • File uploads go in the blobstore.

I am slowly migrating more storage to the Datastore, to get more write bandwidth for things that do not require complex queries and can deal with a bit of eventual consistency.

I am very happy about web2py + appengine + Google Cloud SQL + Datastore + Blobstore.

Rebba answered 9/11, 2013 at 23:35 Comment(0)
A
3

I am using web2py in production with postgres on webfaction, and also on the GAE.

Aviva answered 1/9, 2009 at 6:21 Comment(0)
M
3

I used web2py for small projects so far, but I hope to introduce it in my company. It's my favorite web framework.

My blog is running on GAE with web2py.

I also have a facebook apps running on top of web2py: My Top 10 Gift

Muenster answered 19/6, 2011 at 7:16 Comment(0)
B
3

I use Web2py with Google App Engine in production. See https://www.nittiolearn.com.

For storing data, Google Datastore (accessed via web2py DAL) is used except for storing large resources where Google Cloud Storage is used. I have done multiple web2py version upgrades on the production environment in the last 5 years without any major issues.

Google app engine has also been mostly friction-free over the years.

But neither Web2py nor Google app engine has been adopted widely as I had thought 5-6 years ago. If I'm starting a new project, I'm unlikely to go with web2py or app engine as the number of developers who will be excited to work on these technologies is limited.

Bergin answered 11/12, 2018 at 7:39 Comment(3)
thank you for this feedback (your site looks nice :) Also, yes, on the adoption front: it's hard to get people excited about technology that doesn't have broad appeal / applicability.Maury
Also, it's still Python 2.7 or is there movement toward 3?Maury
Google app engine standard environment now supports python 3 as well. See [cloud.google.com/appengine/docs/standard/python3/]. But I'm still with pytho 2.7.Bergin
C
2

I am using web2py with gae and google datastore in production of custom application , it is a very good framework.

I did made some minor fixes for work good on GAE, work fast and stable, i have published the Web2Py version changes uses on my github soyharso.

The uploads to GAE are fast, the version control app engine is secure, the free tier offer google for tuning your code is excellent, the monthly cost is adequate

Choe answered 12/2, 2017 at 5:20 Comment(0)
A
1

Well, I am using Web2Py professionally, with PostgreSQL, and on linux. I am working on my Social network named "Ourway". You may like some features of it like "Blog" part.

Anestassia answered 1/10, 2011 at 22:47 Comment(0)
F
1

http://www.noobmusic.com is using the Google App Engine.

Ferret answered 13/1, 2012 at 0:16 Comment(0)
U
1

I am using web2py in production. Currently while in early production we are developing with SQLite because it is easy and it comes out of the box but later we will probably switch to MySQL. I don' think there are any plans to use Google App Engine.

Useless answered 12/8, 2013 at 18:26 Comment(0)
B
1

This are quite old responses but I will chip in anyway. In the year 2008 maybe it was excellent choice, as well as Django/Flask. And it still might be good. But this days people want instant results, with a way less learning curve.

The web2py is not that intuitive to be fair.

Do I need to study MVC concepts for working with MS Access? I could not care less for URL routing, just need to display a few tables on the web, preferably with some validation. Plus some authentication.

This is where framework like http://jam-py.com/ shines! Not only that you wont be lost, but it does remind of Access which ruled the offices for like decades. And still rules in 2019. Why? Almost no learning curve.

Blindheim answered 30/4, 2019 at 6:49 Comment(1)
Thank you for bringing that to my attention. I will check it out :)Maury

© 2022 - 2024 — McMap. All rights reserved.