Интеграция 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; соответствующим образом адаптируйте файл шаблона.