Преобразование существующих классов Python в модели Django

-1

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

У меня есть несколько классов, структуры хранения в памяти, getters/seters и т.д., И я хотел бы преобразовать их в модели Django, чтобы я мог сохранять их в базе данных и взаимодействовать с ними вокруг приложения django. Есть ли общий подход к тому, чтобы сделать что-то подобное?

Должен ли я просто наследовать класс django.db.models.Model в моих существующих классах и настроить их для прямого взаимодействия? Или есть лучший, более общий/обычный способ сделать это?

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

Спасибо за любую помощь раньше времени...

Теги:

2 ответа

2

Лично я бы модифицировал существующие классы для расширения models.Model и поддерживайте отдельные версии этих классов для использования за пределами Django.

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

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

Если вы хотите, отправьте пример модели как новый вопрос и пометьте мне ссылку на нее здесь, и я могу помочь вам ее преобразовать.

1

Одна из главных достоинств django - это ORM, если вы хотите импортировать, я рекомендую вам использовать его, и да, вероятно, вам, вероятно, потребуется переписать часть, которая взаимодействует с базой данных, но если вы уже выделили эти функции в классах ~ models, модификация не будет действительно сложной

Хотя в вашем случае я бы рекомендовал проверить Tornado/Aiohttp. Поскольку похоже, что вы просто пытаетесь создать интерфейс для своих функций

Ещё вопросы

Сообщество Overcoder
Наверх
Меню