2016-01-18 2 views
0

У меня есть сценарий командной строки, который имеет sqlalchemy. Они выглядят следующим образом:Sqlalchemy to django orm

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.

ответ

0

Его лучше использовать либо Django ORM, либо SQLAlchemy.

Если вы хотите использовать базу данных SQLAlchemy в Джанго, что вы можете сделать, это:

  1. Создание проекта Джанго.
  2. Обновить настройки базы данных с настройкой нужной базы данных. Команда
  3. Run: python manage.py inspectdb

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

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

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

Смежные вопросы