Errata. I said "The dal supports transactions" where I meant "the dal supports migrations". Of course it also supports "transactions" as well as "distributed transactions".
On Dec 19, 5:32 pm, mdipierro <massimodipierr...@gmail.com> wrote: > On Dec 19, 12:42 am, AppRe Godeck <a...@godeck.com> wrote: > > > Just curious if anybody prefers web2py over django, and visa versa. I > > know it's been discussed on a flame war level a lot. I am looking for a > > more intellectual reasoning behind using one or the other. > > Of course I am the most biased person in the world on this topic but > perhaps you want to hear my bias. > > A little bit of history... I thought a Django course at DePaul > University and built a CMS for the United Nations in Django. I loved > it. Then I also learned RoR. I found RoR more intuitive and better for > rapid prototyping. I found Django much faster and more solid. I > decided to build a proof of concept system that was somewhat in > between Django and Rails with focus on 3 features: 1) easy to start > with (no installation, no configuration, web based IDE, web based > testing, debugging, and database interface); 2) enforce good practice > (MVC, postbacks); 3) secure (escape all output, talk to database via > DAL to present injections, server-side cookies with uuid session keys, > role based access control with pluggable login methods, regex > validation for all input including URLs). > > Originally it was a proof of concept, mostly suitable for teaching. > Then lots of people helped to make it better and turn it into a > production system. Now he had more than 50 contributors and a more > than 20 companies that provide support. > > There are some distinctive features of web2py vs Django. Some love > them, some hate hate them (mostly people who did not try them): > > - We promise backward compatibility. I do not accept patches that > break it. It has been backward compatible for three years and I will > enforce the copyright, if necessary, in order to ensure it for the > future. > > - In web2py models and controllers are not modules. They are not > imported. They are executed. This means you do not need to import > basic web2py symbols. They are already defined in the environment that > executes the models and controllers (like in Rails). This also means > you do not need to restart the web server when you edit your app. You > can import additional modules and you can define modules if you like. > > - You have a web based IDE with editor, some conflict resolution, > Mercurial integration, ticketing system, web-based testing and > debugging. > > - The Database Abstraction Layer (DAL) is closed to SQL than Dango ORM > is. This means it does less for you (in particular about many 2 many) > but it is more flaxible when it comes to complex joins, aggregates and > nested selects. > > - The DAL supports out of the box SQLite, MySQL, PostgreSQL, MSSQL, > Oracle, FireBird, FireBase, DB2, Informix, Ingres, and the Google App > Engine (except for joins and multi-entity transactions). We plan > support for Sybase and MongoDB within one month. > > - The DAL supports transactions. It means it will create and/or ALTER > tables for you as your model changes. This can be disabled. > > - The DAL has partial support for some legacy databases that do not > have an 'id' auto increment primary key. > > - It has a plugin and a component systems (here is an old > video:http://www.vimeo.com/7182692the video says "experimental" but this is > now stable in trunk, although not very well documented). > > - both systems have a web based database interface (Django calls it > "admin", web2py calls it "appadmin, not to be confused with web2py > "admin", the IDE). The Django one is more polished, customizable and > designed to be exposed to users. The web2py one is raw and designed > for the administrator. It is not customizable. Because it is designed > for the administrator and requires administrator login it allows > arbitrary DAL code to be executed. It can be disabled. > > Here is the last app I built with it:http://www.vimeo.com/7182692 > running on GAE here:http://www.vimeo.com/7182692 > > Herehttp://www.vimeo.com/6507384you can see a video in which I > rewrite the Django polls tutorial in web2py. You will get an idea of > some of the differences. > > Anyway, I think both system are great. Spend 15 minutes (no more) with > each to make up your mind, and stick with it. > > Massimo -- http://mail.python.org/mailman/listinfo/python-list