Sqlalchemy для django orm

У меня есть сценарий командной строки с sqlalchemy. Выглядят они следующим образом:

class TimestampMixin(object):
    created_date = Column(DateTime, default=func.now())

class DataSource(Base, TimestampMixin):
    """DataSource object"""
    __tablename__ = 'data_source'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    external_location = Column(String)
    games = relationship('Game', backref="data_source")

Теперь я хочу взять те же модели и поместить их в приложение django. Я могу сделать это вручную следующим образом:

class TimestampMixin(models.Model):
    created_date = models.DateTimeField(auto_now_add=True)

    class Meta:
        abstract = True

class DataSource(TimestampMixin):
    """DataSource object"""
    name = models.CharField(max_length=255)
    external_location = models.CharField(max_length=255)

    class Meta:
        db_table = 'data_source'

Мне было интересно, есть ли способ лучше. Начать было бы неплохо, у меня всего 9 моделей, но я бы не стал их содержать. Есть ли лучший (стандартизованный) подход? С djanog я хотел бы по-прежнему использовать такие вещи, как DjangoRestFramework и DjangoForms. Я не уверен, работают ли они с sqlalchemy.


person bink1time    schedule 18.01.2016    source источник


Ответы (1)


Лучше использовать Django ORM или SQLAlchemy.

Если вы хотите использовать базу данных SQLAlchemy в django, вы можете сделать следующее:

  1. Создайте проект django.
  2. Обновите настройки базы данных, указав желаемую конфигурацию базы данных.
  3. Команда запуска: python manage.py inspectdb

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

Вы можете проверить это здесь подробно: https://docs.djangoproject.com/en/dev/ref/django-admin/#inspectdb.

Вы можете проверить этот SO-ответ об использовании SQLAlchemy и Django вместе.

person ruddra    schedule 18.01.2016