SQLAlchemy и django, готово ли производство? - PullRequest
22 голосов
/ 20 июля 2009

Кто-нибудь использовал SQLAlchemy в дополнение к Django ORM?

Я бы хотел использовать ORM Джанго для манипулирования объектами и SQLalchemy для сложных запросов (например, тех, которые требуют внешних левых соединений).

Возможно ли это?

Примечание: я знаю о django-sqlalchemy, но проект, похоже, не готов к производству.

Ответы [ 5 ]

18 голосов
/ 20 июля 2009

Что бы я сделал,

  1. Определите схему в Django orm, пусть она записывает БД через syncdb. Вы получаете интерфейс администратора.

  2. В view1 вам нужно сложное соединение


    def view1(request):
       import sqlalchemy
       data = sqlalchemy.complex_join_magic(...)
       ...
       payload = {'data': data, ...}
       return render_to_response('template', payload, ...)

7 голосов
/ 24 августа 2010

Я делал это раньше, и это нормально. Используйте функцию SQLAlchemy, где он может читать схему, чтобы вам не нужно было объявлять поля дважды.

Вы можете получить настройки соединения из настроек, единственная проблема - что-то вроде разных разновидностей драйвера postgres (например, с psyco и без).

Это того стоит, так как материал SQLAlchemy намного лучше для таких вещей, как объединения.

7 голосов
/ 20 июля 2009

Я не думаю, что это хорошая практика, чтобы использовать оба. Вы должны либо:

  1. Используйте ORM Django и используйте пользовательский SQL, если встроенное в Django генерирование SQL не соответствует вашим потребностям, или
  2. Используйте SQLAlchemy (который дает вам более точный контроль за счет дополнительной сложности) и, при необходимости, используйте декларативный слой, такой как Elixir , чтобы немного облегчить жизнь.

Конечно, если вам нужен админ Django, то рекомендуется первый из этих подходов.

4 голосов
/ 21 августа 2009

Джейкоб Каплан-Мосс признавался, что время от времени набирал «import sqlalchemy». Я могу написать адаптер набора запросов для результатов sqlalchemy в недалеком будущем.

3 голосов
/ 20 декабря 2014

В настоящее время вы можете использовать Aldjemy . Подумайте об этом учебнике .

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