Do you use web2py professionally?

1,942 views
Skip to first unread message

alastor...@gmail.com

unread,
Aug 12, 2013, 2:06:45 PM8/12/13
to web...@googlegroups.com
Hello Web2py users!


I heard a lot about web2py. I spent some time to test it, and I loved what I have seen.

But compared to Django, web2py seems to be used only for personal websites, or small apps.

Do you know if there are people or companies using web2py to build professionnal applications?

If you have already tried Web2py, would you use it professionnaly? why?

Thank you!

Jason (spot) Brower

unread,
Aug 12, 2013, 2:23:51 PM8/12/13
to web2py-users
Our company only develops in web2py. Python really, but web2py is what we use more than anything else by far.
For example, we are developing a site that will handle terrabytes of data.  At most, 196TB but most likely about a third of that at any one time. It's got at least 2 intranet servers and 1 amazon with a fat S3.
We use Web2Py for a couple of reasons.
We focus on startups.  So we need to develop very fast and cheap.  Many ideas never come about because you can't see results fast.  Web2py let's us make protos very fast, sometimes in a day or two of work.
We can upgrade and update very fast.  It's easy to put the entire system in version control and push or pull updates.  Very nice to do, and web2py doesn't panic when it sees files that aren't used for web2py itself. (like the version control files.)
It's python, but then again so is django.  Difference is that people who can't program can still setup and run web2py WAY faster then people using many other frameworks.
Perhaps the reason you feel that web2py is used on mostly small apps, is because it's so easy to setup for small (and big) apps.  Big apps take time on web2py on django, small apps take time on django.  <-- that's my personal opinion.
My daily bread wouldn't exist for 3+ people here at Encompass Solutions Oy if it wasn't for web2py. And 2 more people starting next month. :) -- Thank you Massimo
Here's how I think of it, if your trying to think scaled software or big future, your doing it wrong.  Start small, don't worry about if it's "fast", "scalable" and so on, most of what is out there is fast for hundreds of users.
IF you do get big, remember most startup companies fail, then your going to have the good news that you need to scale up. And web2py gets you up fast and it scales up very well too. If you have speed problems you most likely going to find the fixes in your database, storage, or caching.  Not your framework.
What kind of project you thinking of doing?  Can we, Encompass Solutions, help you? :)
BR,
Jason Brower


--
 
---
You received this message because you are subscribed to the Google Groups "web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to web2py+un...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Anthony

unread,
Aug 12, 2013, 2:40:15 PM8/12/13
to web...@googlegroups.com
I have some web2py apps used internally by a Fortune 500 company, and I know there are many similar cases. Sahana Eden is an example of a public project that is not a "small app." Certainly, though, Django has a larger community and ecosystem. This is partly due to the fact that it came several years earlier (I believe shortly after Rails first appeared) and was created within a commercial context (so had instant commercial credibility). web2py also does a few things outside the norm for a Python framework so hasn't received a lot of love within the wider Python community. Nevertheless, InfoWorld rated web2py best among six Python frameworks (including Django) and awarded it a 2011 Bossie Award for open source application development software as well as a 2012 Technology of the Year Award.

Although the web2py community is smaller, it is known for being very active, friendly, and helpful. The development process is also fairly agile and informal, so if you are interested, you are probably much more likely to be able to influence and contribute to the development of the framework than you would be with something like Django (have a good idea -- send Massimo a patch, and you'll probably see it in trunk within a day or two).

Anthony

Jim S

unread,
Aug 12, 2013, 3:10:31 PM8/12/13
to web...@googlegroups.com
Yes, I use it for all sorts of little applications for our mid-size manufacturing organization.  We have a big ERP system but it can't handle lots of the things that make us different.  web2py makes it really easy to build little utility apps to replace spreadsheets and access databases.  Because our manufacturing is so different than everyone else in the world we've written our own apps to capture all the data and then feed it back to the ERP system.  In the process of replacing all of our TurboGears apps with web2py apps.

-Jim

Michael Herman

unread,
Aug 12, 2013, 5:00:12 PM8/12/13
to
I develop as much as I can in web2py. Scalability has a lot more to do with architecture and database design than the framework. If you are developing an MVP, you never want to think about scalability in the first place. Develop quickly, test the main features, pivot (if needed), and then grow or try something new ..



On Monday, August 12, 2013 1:06:45 PM UTC-5, alastor...@gmail.com wrote:

Tim Michelsen

unread,
Aug 12, 2013, 6:41:20 PM8/12/13
to web...@googlegroups.com
Hello,
very intersting

> web2py makes it really easy to build little utility apps to replace
> spreadsheets and access databases.
Could you give an exmaple in which workflow this is used?

Any I would be interested in learning about your development appraoch.
Especially when replacing the monstrous spreadsheets, it can get
difficult as everyone is so used to them so that it's hard to convince
them to use something else.
Even if they know that these are buggy.

Seriously, do you have a certain UI?
Like wizards, table grids?

Thanks in advance,
Timmie


Jason (spot) Brower

unread,
Aug 12, 2013, 11:14:21 PM8/12/13
to web2py-users
When ever you need a spreadsheet that is accessed by many people during the day.  Then you need an app.  Especially if it's internal network.  Like an intranet. Web2py does that just fine.
And most of the time, if you try to solve everything with a spreadsheet it's like making a robot act like a human.  Your wasting your time when you could build something special for the job.
You need to look at the information your trying to store, look at the outcome you want to see in the end, and then calculate the stuff in the middle. Model, View, Controller. (dance) :P
BR,
Jason


Johann Spies

unread,
Aug 13, 2013, 2:18:47 AM8/13/13
to web...@googlegroups.com
I use it as data manager of a research institution to manage several bibliometric databases.  The one I am building at the moment (busy importing raw data for the past three months) contains information about more than 43 million pubications. One of the tables (many to many cross references) has more than 3000 million records.

Web2py provides the user interface to this data for researchers as well as for database assistants who work on cleaning the data.

I have in the past used web2py for some other projects too.

Regards
Johann.

--
Because experiencing your loyal love is better than life itself,
my lips will praise you.  (Psalm 63:3)

Arnon Marcus

unread,
Aug 13, 2013, 5:08:04 AM8/13/13
to web...@googlegroups.com
We at our company have been using web2py for almost 4 years now.
We use it as a basis for a wide-spectrum management system for our entire business, as an intranet web-app.
We started by implementing a bidding process (generating budget-proposals, and such) as a substitution for monstrous spreadsheets.
Granted, that is a very non-trivial accomplishment, and has little to do with the back-end web-framework.
The most difficult aspects of such a system, are usually in the front-end, as it needs to do a lot of non-trivial things client-side, while still retaining the spreadsheet benefits.
For this, we decided to build on-top of an existing front-end framework. After some research, we landed on a proprietary solution called "EJS TreeGrid":
For what it gave us, it paid for itself about a thousand times over...
We chose it mainly for the solidness and flexibility of the API, and the quality and breadth of the documentation, as well as it's feature support.
I can talk for days about it, but this would be vastly OT here. Suffice it to say, you need something like this if you are serious about replacing a "monstrous spreadsheet" process.
Things like being able to flexibly define trees and/or grids with pivot-tables, a built-in undo/redo, pagination, defining callbacks for anything, etc.
We also use it as a replacement for MS-Project, as it has full-support for Gantt-charts, resource-utilization-graphs, as well as run-charts for scheduling.

We are currently experiencing performance issues, but profiling shows that the database is the bottleneck, as noted here.

So, it really isn't a question of the back-end web-framework when it comes to such considerations - other factors matter much more.
That said, in order to be able to focus on the other important things, you need a web-framework that would require the least amount of effort on your behalf, and in that web2py excels.
You want a framework that would get out of your way when implementing front-ends, and help you out as much as possible when defining your data-schema, with little-to-no restrictions.
Granted, web2py has a lot of focus on "the simple things", like SQLFORMs and such simplistic-automation, but it doesn't mean you "have" to use them (we rarely do), as once things get a little less trivial, the restricted-nature of such things starts to show.

So, to conclude, use what you need, not necessarily what exist in the framework - whatever it may be - and try to properly situate where considerations should focus for each need - some may not be the web-framework (at least not directly).

Jason (spot) Brower

unread,
Aug 13, 2013, 12:51:36 PM8/13/13
to web2py-users
"web2py excels" your so punny!
:-D



--

Jim Steil

unread,
Aug 13, 2013, 1:05:11 PM8/13/13
to web...@googlegroups.com
Not sure what you're asking here but I did not write an app to replace Excel, but apps to replace specific Excel spreadsheets that were developed to track business-related data that an off-the-shelf product couldn't handle or was overkill for our needs.




--

---
You received this message because you are subscribed to a topic in the Google Groups "web2py-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/web2py/obzfYUHKhF4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to web2py+un...@googlegroups.com.

Alfonso de la Guarda

unread,
Aug 13, 2013, 1:07:38 PM8/13/13
to web...@googlegroups.com
Hi,

Well, my company is using web2py in multiple scientific projects: from
medicine, defense, mining through geography, in fact there are small
projects in the sense that only works inside intranets but manages
everything and simply moves to our costumers to a full web based
solution.

I don't have any real experience with cloud big implementations for
massive web but i am sure that is more a DB related topic that the
framework itself.

In a short answer: we are using and living using web2py profesionally
in almost all our projects

Saludos,

--------------------------------
Alfonso de la Guarda
Twitter: @alfonsodg
Redes sociales: alfonsodg
Telef. 991935157
1024D/B23B24A4
5469 ED92 75A3 BBDB FD6B 58A5 54A1 851D B23B 24A4
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an

guruyaya

unread,
Aug 13, 2013, 1:47:12 PM8/13/13
to web...@googlegroups.com
I've brought web2py with me, into 2 projects. One is a Scada platform (a web interface for controlling devices, like air conditions). I pushed for it, because I was a long time fan, but my biggest selling point was the easy migrations (we needed to install and upgrade the system on many computers, and knowing you can just drop the files, and it'll probably handle the migrations for you, was a big plus), and being python, that the company already used for some projects. At the time, django didn't fully finish working on it's migrations. I don't know what's the status now, but from what I gather, they know what they do now.
Now, I'm working with web2py on a project that has to do with advertising (sorry, I can't tell you more at the moment). The main selling point here were, my familiarity with the frameworks in and outs. Also the great community, and the ability move into, and from GAE if needed, as we are still not sure we should use it (long story short - it's awsone, but costly). 
Both these projects are big, in the sense that they serve lots of clients.

Jason (spot) Brower

unread,
Aug 13, 2013, 2:48:21 PM8/13/13
to web2py-users
I also like web2py because it's small enough I can contribute and big enough it makes a difference when I do. :)
BR,
Jason



webpypy

unread,
Aug 13, 2013, 8:40:16 PM8/13/13
to web...@googlegroups.com

Hi Arnon Marcus:

Is it possible to write a small web2py  example app using EJS TreeGrid?

Regards,

Ashraf Mansour

Arnon Marcus

unread,
Aug 14, 2013, 5:09:25 AM8/14/13
to web...@googlegroups.com
Hmmm, our code is proprietary...
I'll see what I can do.

Basically, you load-up treegrid in the layout.html like any other javascript library (after putting it in the static folder of the app), and from then it works via ajax with jquery.
You write a controller-action in web2py that you talk to with that ajax-call, and in it you provide a formatted xml in the response.
The xml defines the structure/schema of the data (which columns you have), as well as configuration of the treegrid for that particular use-case (turning features on and off, defining tree-groupings, etc).
You provide the data itself in a different xml, as a response to data-queries from treegrid.
You also need another controller-action for the "save" operation, which receives an xml with the changes, and should parse it and store the changes in the database.
These are the very basics, obliviously for a larger project like ours, you would end-up having a dedicated module to deal with treegrid interactions, and use it's methods in the controller-actions. Unfortunately, we are not in liberty to share that code... :/

I'll check if we can churn-out some example code, though...
Treegrid itself has a 30 day trial also (with a watermark) so you can download and try it out.
There are also many examples on the EJS website, that you can download ant try-out (in addition to the online examples).
In general, though, it's not too much different from any other client-side widget - the ajax interaction model is basically the same.

Arnon Marcus

unread,
Aug 14, 2013, 5:31:54 AM8/14/13
to web...@googlegroups.com
This is a client-side example of instantiating a treegrid object:

TreeGrid({    // Object supplied defining the treegrid instance
   
Layout:{  // Data source for grid structure, definitions and columns and usually fixed rows
       
Url:def_url  // Each Url may be of a static document, or representing a back-end controller-action
   
},               // *You may validate the urls with something like "Layout:(def_url!==''?{Url:def_url}:{})"
 
Data:{    // Data source for all grid data, usually variable rows
       
Url:data_url, // For server paging (Cfg.Paging = 3) it should contain only variable data rows
       
Param:params  // "params" are the "vars" that you send to the controller-actions
 
},        
 
Upload:{  // Destination for upload changed data from grid (in effect the "save" operation)
       
Url:upload_url,      
       
Param:params,
       
Xml:1,               // use an xml
       
Attrs:upload_attrs,  // rarely used - look it up if you need to
       
Type:upload_type     // rarely used - means "all data" or "just the changes"
   
}        
},tag);       // the div that will contain TreeGrid

webpypy

unread,
Aug 15, 2013, 12:22:39 AM8/15/13
to web...@googlegroups.com

Dear Arnon,

I appreciate your help. 
I am asking for small one-table example, if your company permits.

Regards,

Ashraf

Arnon Marcus

unread,
Aug 15, 2013, 2:50:17 AM8/15/13
to web...@googlegroups.com
We dont have such an example.
As I said, what tends to happen after awhile, is that a new separate module emearges, just for dealing with treegrid on the back-end. All handlers for even the simplest of use-cases, are then refactored into using this module, in order to avoid code-duplications. This is te professional way of coding. At the same time this means that extracting some functions from this tightly-coupled arrangement becomes anywhere from difficult to impossible, and all disjointed use-cases tend to disappear.

Arnon Marcus

unread,
Aug 15, 2013, 3:00:08 AM8/15/13
to web...@googlegroups.com
The explenation I gave shoul make it trivial to write a simple example - it boils everytings down to a few urls that return an xml. Writing such controller-actions in web2py is trivial to do with the aid of the web2py documentation - you may even be able to find examples. As for the xml formatting, again, it's in the documentation of treegrid itself - there may even be examples there also.

webpypy

unread,
Aug 15, 2013, 3:06:18 AM8/15/13
to web...@googlegroups.com

Thank you, Arnon, for your cooperation.

Ashraf
Reply all
Reply to author
Forward
0 new messages