I think one of the reasons web2py is so productive and has an easy learn curve is due to the fact of using DAL instead of an ORM. I don't see any problem in using sqlalchemy with web2py if an ORM is needed. I would probably use it in some big projects for some of the models.
But for the sake of the easy learning/productivity/quick development time I would prefer to keep pydal as the default, at least for the features web2py provides (auth, security, etc.) Just my 20 cents. José L. El vie., 19 abr. 2019 a las 16:54, Carlos Cesar Caballero Díaz (< carlos.caball...@cfg.jovenclub.cu>) escribió: > As almost everything in our world ORMs has advantages and disadvantages. > The main criticism about ORMs is that they are leaky abstractions, that > means they leaks details that it is supposed to abstract away, because > there are times when you just need to use, for example, SQL directly or > work with raw rows when making complex queries or improving performance > because that is one of the ORMs disadvantages, they include an extra > logical layer that, depending on the implementation can affect performance > more or less. > > But there are lot of people out there using ORMs and this is because they > have advantages, compared with PyDAL, mostly when you are using big models, > for example, compare this PyDAL model: > > def _get_somethig_plus_age(row, extra): > return row.person.age + extra > > db.define_table('person', > Field('name') > Field('age', 'integer') > Field.Method('get_somethig_plus_age', _get_somethig_plus_age) > ) > > against this ORM-style model: > > class Person(Model): > name = Field() > age = Field('integer') > > def get_somethig_plus_age(self, extra): > return self.age + extra > > In an ORM, a model class represents a table, and when you query the DB, > you get the class instance objects representing rows. Using this approach > you can directly benefit from the advantages of the OOP and the code > readability and organization improves a lot, mostly when models starts grow > big. > > Greetings. > > > El 19/4/19 a las 2:44 a.m., Dave S escribió: > > On Thursday, April 18, 2019 at 3:48:09 PM UTC-7, Carlos Cesar Caballero > wrote: >> >> Hi Massimo, here is it: https://github.com/cccaballero/pydal-orm. I >> think including something like this with pydal will be a really good >> improvement. >> >> Greetings. >> >> > As someone who had some SQL training (but not proficiency) before using > Web2Py, > and who has rarely had an issue with using the DAL (but then, I don't have > complicated projects, either), > I could use some info on what makes an ORM great. > > I know that Massimo has said in the past that it was a deliberate choice > to do the DAL instead of an ORM > (is the DAL a DAO?), > and I see the contributors to Wikipedia have listed some concerns > along with the advantages > (client code gets to stick with working with objects ++ > high level of abstraction obscures what is happening -- > heavy reliance on ORM cited as major factor in poorly designed DBs --) > > The third approach appears to be OODBMS where the store actually is built > around objects via ODMs > rather than translating tables. This gets into NoSQL territory, it seems. > > So, educate me! > > /dps > > El 12/4/19 a las 4:33 p.m., Massimo Di Pierro escribió: >> > Can you make it a module on pypi? Or should we include it in pydal? >> > >> >> -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > 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+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > > -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > 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+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.