mboost-dp1

Python ORM


Gå til bund
Gravatar #1 - arne_v
16. sep. 2021 23:53
Jeg er ikke imponeret af hvad jeg har set med hensyn til Python ORM's.

Og strengt taget er et dynamisk type sprog or ORM vel også en sær kombination.

Men:

https://github.com/tiangolo/sqlmodel

virker altså ret overbevisende.

Kræver Python 3.6.

Og er stadig kun version 0.0.4 så der er nok et par bugs.

Gravatar #2 - larsp
17. sep. 2021 07:09
Hele: "Klasse hierarki med data <-> ORM interfacing kode <-> ORM <-> Relationel database" idéen har altid forekommet mig at gå over åen efter vand i de use cases jeg har haft.

Jeg er typisk endt med: "Klasse hierarki med data <- custom save/load kode -> json" og man eliminerer en hel masse dependencies og bloat.
Gravatar #3 - arne_v
17. sep. 2021 12:24
#2

I de fleste tilfælde sparer man kode ved at bruge ORM fremfor SQL.

For noget super simpelt kode (5 metoder i Java/C#, 4 i PHP/Python):

Java JDBC (SQL) : 92 linier
Java JPA (ORM) : 50 linier

C# ADO.NET (SQL) generic : 171 linier
C# ADO.NET (SQL) specific : 129 linier
C# EF (ORM) : 53 linier

PHP PDO (SQL) : 51 linier
PHP Doctrine (ORM) : 30 linier

Python DB API 2.0 (SQL) : 21 linier
Pyton SQLModel (ORM) : 26 linier

Tilgå database og tilgå serialiseret fil er ikke helt sammenligneligt.
Gravatar #4 - CBM
25. sep. 2021 08:14
hvorfor??? Har alle så forbandet travlt med at udskifte SQL?
Gravatar #5 - arne_v
25. sep. 2021 12:12
#2

Mindre kode => mindre vedligehold.

Og i visse tilfælde mindre database afhængighed => mindre porteringsarbejde.
Gravatar #6 - CBM
26. sep. 2021 12:14
arne_v (5) skrev:
#2

Mindre kode => mindre vedligehold.

Og i visse tilfælde mindre database afhængighed => mindre porteringsarbejde.

Med undtagelse af python

Men en oversætter burde også kunne tage sql i eksisterende kode og lave det til orm... lidt som med aspekt orienteret kode til fx java hvor der er et ekstra led i kæden
Gravatar #7 - arne_v
26. sep. 2021 18:49
CBM (6) skrev:
arne_v (5) skrev:
#2

Mindre kode => mindre vedligehold.

Og i visse tilfælde mindre database afhængighed => mindre porteringsarbejde.

Med undtagelse af python


Python kode er normalt meget kompakt og derfor er gevindsten generelt mindre.

I mit konkrete tilfælde krævede ORM endda flere linier, men i andre tilfælde vil der nok være en lille besparelse.

Men slet ikke som i Java/C#.

CBM (6) skrev:
Men en oversætter burde også kunne tage sql i eksisterende kode og lave det til orm... lidt som med aspekt orienteret kode til fx java hvor der er et ekstra led i kæden


ORM bliver lavet om til SQL runtime.

Jeg tror at det vil være svært at konvertere SQL til ORM.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login