django orm против sqlachemy, это одно и то же? - PullRequest
4 голосов
/ 13 сентября 2010

При использовании django, я полагаю, что вы можете поменять встроенную форму для sqlalchemy (не знаете, как, хотя?).

Они оба в основном одно и то же, или между ними есть явный победитель

Ответы [ 2 ]

6 голосов
/ 13 сентября 2010

Я полагаю, что при использовании django вы можете заменить встроенную форму для sqlalchemy (не знаю, как, хотя?).

Вы можете использовать SQLAlchemy в своих приложениях Django. Это не значит, что вы можете поменять ORM. Некоторые встроенные батареи Django перестанут работать, если вы полностью замените ORM Django на SQLAlchemy. Например, приложение Admin не будет работать.

Я читал о людях , использующих и . ORM от Django, чтобы заставить батареи работать, и SQLAlchemy для решения сложных SQL-отношений и запросов.

Они оба в основном одно и то же или между 2 есть явный победитель?

Они не одно и то же. SQLAlchemy более универсален , чем ORM Джанго. Например, в то время как ORM Django тесно связывает уровень бизнес-логики и уровень персистентности с моделями, SQLAlchemy позволит вам разделить их.

С другой стороны, SQLAlchemy имеет более крутой курс обучения и будет излишним для многих проектов. Существующие инструменты миграции для SQLAlchemy, возможно, нелегко интегрировать с Django.

Все сказали, я бы не стал объявлять "победителем". Они в целом похожи на другие инструменты, но имеют свои сильные и слабые стороны, а также наиболее подходящие ситуации.

Пока вы обсуждаете эту тему, не помешало бы прочитать (устаревшее, но актуальное) сообщение в блоге о недостатках Django ORM и о том, как он сравнивается с SQLAlchemy.

0 голосов
/ 14 сентября 2010

SQLAlchemy более мощный, но и более сложный, чем Django ORM.

Elixir предоставляет интерфейс поверх SQLAlchemy, который ближе к Django ORM по сложности, но также позволяет использовать конструкции из SQLAlchemy, если одного Elixir недостаточно. Например, я обнаружил, что класс SQLAlchemy AssociationProxy может быть полезен в нескольких случаях. Вы просто помещаете поле AssociationProxy в класс моделей Elixir, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...