Zweck von SQLAlchemy über MySQLdb
Warum machen die Leute verwenden, SQLAlchemy statt MySQLdb? Welche Vorteile hat es zu bieten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum machen die Leute verwenden, SQLAlchemy statt MySQLdb? Welche Vorteile hat es zu bieten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du nicht benutzt SQLAlchemy statt MySQLdb—verwenden Sie SQLAlchemy auf etwas zugreifen, wie MySQLdb, oursql (ein anderer MySQL-Treiber, die ich höre, ist schöner und hat eine bessere Leistung), die sqlite3-Modul, psycopg2, oder was auch immer andere Datenbank Treiber, den Sie verwenden.
Einem ORM (wie SQLAlchemy) hilft abstrahieren die details der Datenbank, die Sie verwenden. Dies ermöglicht Ihnen, halten von miry details der Datenbank-system Sie verwenden, vermeiden die Möglichkeit von Fehlern einige Male (und die Einführung der Möglichkeit, andere), und macht die Portierung von trivial (zumindest in der Theorie).
Einfacher Portabilität zwischen verschiedenen DB-engines (sagen, dass Sie morgen entscheiden Sie verschieben möchten, sqlite oder PostgreSQL oder...), und der höheren Ebene der Abstraktion (und damit potentiell höhere Produktivität).
Diese sind einige der gute Gründen. Es gibt auch einige schlechte Gründe für den Einsatz eines ORM, wie die nicht wollen, zu lernen, SQL, aber ich vermute, SQLAlchemy insbesondere ist nicht wirklich favorisiert, die die Menschen für so schlechte Gründe für den Wunsch ein ORM eher als Nackte SQL;-).
Zusätzlich zu dem, was Alex sagte...
", die nicht wollen, zu lernen, SQL" ist wahrscheinlich eine schlechte Sache, jedoch, wenn Sie möchten, um mehr nicht-technische Menschen beteiligt, die als Teil des Entwicklungsprozesses, ORMs tun einen ziemlich guten job, weil es push nicht diese Ebene der Komplexität, um eine Ebene nach unten. Eines der Elemente gemacht hat, dass Django erfolgreich ist seine Fähigkeit zu lassen, "Zeitung der Journalisten" die Pflege einer website, sondern als software-Ingenieure.
einer der Einschränkungen von ORMs ist, dass Sie nicht so skalierbar wie mit raw-SQL. bei einem früheren job, wollten wir loswerden eine Menge von manuellen SQL-Generierung und wechselte zu einem ORM für ease-of-use (SQLAlchemy, Elixir etc.) aber Monate später, landete ich mit schreiben raw-SQL wieder zu bekommen, um die ineffiziente oder hohe Latenz-Abfragen, die erzeugt wurden durch das ORM-system.