25Fermer27
squale92Le 04/11/2012 à 18:11
flanker (./25) :
L'appel à .save() est l'équivalent du SQL "INSERT INTO Article (title, content) VALUES ("premier titre", "hello, world")". Mais sans les problèmes de vérification des données biggrin.gif

(je parle à partir du "monde PHP", mais j'ose imaginer que c'est pareil côté Python)

De manière plus générale, la méthode save() de ton ORM va "enregistrer les données", sans que tu n'aies à te soucier de ce que cela signifie réellement.

Autrement dit, tu n'as pas à chercher s'il s'agit d'insérer des données ou d'en updater, par exemple.
Ca veut aussi dire que tu n'as pas à te soucier de savoir dans combien de tables tes données sont stockées : tu enregistres un objet et ses éventuels objets liés, sans avoir à gérer la transaction, sans avoir à réfléchir à l'ordre d'insertion qui soit correct par rapport aux clefs étrangères, ...

Et par dessus ça, assez fréquemment, ton ORM ajoutera une couche d'abstraction du moteur de base données -- autrement dit, ton code "objet" devrait fonctionner avec MySQL / PostgreSQL / ou même des moteurs "NoSQL", sans que tu n'aies à ré-écrire tes requêtes SQL ou le code les exécutant.

(la question d'après c'est "c'est quoi l'inconvénient d'utiliser un ORM ?" ^^ )