Интеграция Django с существующей базой данных

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

В этом документе предполагается, что вы знакомы с основами Django, как описано в руководстве .

После установки Django, вот общий процесс интеграции существующей базы данных.

Указание параметров базы данных

Необходимо указать Django параметры подключения к базе данных, а также ее имя. Сделайте это, изменив настройку DATABASES и присвоив значения следующим клавишам соединения 'default' :

Автоматическая генерация моделей

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

$ python manage.py inspectdb

Сохраните этот вывод в файл, используя стандартное перенаправление вывода Unix:

$ python manage.py inspectdb > models.py

Эта функция похожа на ярлык, а не на последнее поколение моделей. Проверьте это для получения дополнительной информации.documentation de inspectdb

После очистки ваших моделей назовите этот файл models.py и поместите его в пакет Python, содержащий ваше приложение. Затем добавьте приложение в свою настройку INSTALLED_APPS .

По умолчанию inspectdb создает беспилотные модели. То есть наличие в классе моделей говорит Django не контролировать создание соответствующей таблицы, ее модификацию или уничтожение:managed = False Meta

class Person(models.Model):
    id = models.IntegerField(primary_key=True)
    first_name = models.CharField(max_length=70)
    class Meta:
       managed = False
       db_table = 'CENSUS_PERSONS'

Если вы хотите, чтобы Django управлял жизненным циклом таблиц, вам необходимо изменить managed выделенный выше параметр, чтобы присвоить ему значение True (или удалить его полностью, поскольку он True установлен по умолчанию).

Установка основных таблиц Django

Затем запустите команду, migrate чтобы установить дополнительные записи базы данных, такие как административные разрешения и типы контента:

$ python manage.py migrate

Тесты и настройки

Мы провели вас через основные шаги; Оттуда вам нужно будет настроить сгенерированные модели Django, чтобы они соответствовали вашим ожиданиям. Попробуйте получить доступ к своим данным через API базы данных Django и попробуйте изменить объекты через сайт администратора Django; соответствующим образом адаптируйте файл шаблона.

Copyright ©2020 All rights reserved