Интеграция Django с устаревшей базой данных ¶
Хотя Django лучше всего подходит для разработки новых приложений, его вполне возможно интегрировать в устаревшие базы данных. Django включает в себя несколько утилит для максимальной автоматизации этого процесса.
В этом документе предполагается, что вы знакомы с основами Django, как описано в руководстве .
После того, как вы настроили Django, вы выполните этот общий процесс для интеграции с существующей базой данных.
Дайте Django параметры вашей базы данных ¶
Вам нужно будет сообщить Django, каковы параметры подключения к вашей базе данных и каково ее имя. Сделайте это, отредактировав DATABASES
настройку и присвоив значения следующим клавишам 'default'
соединения:
Автоматическое создание моделей ¶
Django поставляется с утилитой, inspectdb
которая может создавать модели путем самоанализа существующей базы данных. Вы можете просмотреть вывод, выполнив эту команду:
$ python manage.py inspectdb
Сохраните это как файл, используя стандартное перенаправление вывода Unix:
$ python manage.py inspectdb > models.py
Эта функция предназначена для быстрого доступа, а не для окончательного создания модели. См.
Для получения дополнительной информации.documentation of 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 и соответствующим образом отредактируйте файл модели.