[Python-de] ORM in Python

Thomas Guettler guettli at thomas-guettler.de
Do Jun 20 09:13:41 CEST 2013


Am 18.06.2013 16:11, schrieb Thomas Lenarz:
> Am 18.06.2013 12:55, schrieb Alexander Langer:
>> 2)
>> ANSI SQL ist ein anerkannter Standard, ich sehe aber in beiden
>> Frameworks keine Möglichkeit meine in SQL formulierten
>> SELECT-JOIN-Statements automatisiert zu mappen.
>> Warum ist das so ?
>>
>> Ich glaube in Java Hibernate ist es nicht groß anders, gibt es überhaupt
>> eine Implementierung, die oben genanntes bietet ?
>
> Ich hatte dasselbe Problem, dass ich nicht verstanden habe, warum ich mit einem ORM-Framework nicht mit beliebigen SQLs
> arbeiten kann.
> (Im Gegenteil: Dinge, die mir SQL sonst deklarativ abnimmt, müssen plötzlich programmiert werden...)
> Das mag an meiner Denkweise gelegen haben, da ich SQL lange vor OO-Konzepten gelernt habe.
>
> Ich vermute, das liegt an der Richtung des Ansatzes: ORMs kommen von der OO und "nutzen" SQL als Mittel zur Persistenz.
> Insofern wird SQL nicht vollständig ausgeschöpft.

Beim ORM von Django kann man recht gut den WHERE-Teil anpassen. Das Ergebnis liegt dann als Objekt-QuerySet vor.

Wenn du aber den SELECT-Teil anpasst, ist es klar: Was soll das sein? Ein Objekt bei dem einige
Attribute fehlen? Wenn man nur eine Teilmenge der Spalten haben möchte kann man bei Django das Ergebnis
der Anfrage auch als eine Liste von Dictionaries erhalten.

Ich persönlich hatte auch erst bedenken. Aber inzwischen möchte ich nicht mehr zurück. Gerade der doppelte
Unterstrich ist wirklich bequem [1]

[1] https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships

Gruß,
   Thomas


-- 
Thomas Guettler http://www.thomas-guettler.de/


Mehr Informationen über die Mailingliste python-de