如何将 Django 与遗留数据库集成¶
虽然 Django 最适合开发新的应用程序,但将其集成到遗留数据库中也是完全可能的。Django 包含一些实用程序,可以尽可能地自动化此过程。
本文档假设您了解 Django 的基础知识,如 教程 中所述。
设置好 Django 后,您将按照以下一般步骤与现有数据库集成。
向 Django 提供您的数据库参数¶
您需要告诉 Django 您的数据库连接参数是什么,以及数据库的名称是什么。通过编辑 DATABASES
设置并为 'default'
连接分配以下键的值来实现这一点
自动生成模型¶
Django 带有一个名为 inspectdb
的实用程序,它可以通过内省现有数据库来创建模型。您可以通过运行以下命令来查看输出
$ python manage.py inspectdb
使用标准的 Unix 输出重定向将此保存为文件
$ python manage.py inspectdb > models.py
此功能旨在作为快捷方式,而不是作为最终的模型生成。有关更多信息,请参阅 inspectdb
的 文档
。
清理完模型后,将文件命名为 models.py
并将其放在包含应用程序的 Python 包中。然后将应用程序添加到您的 INSTALLED_APPS
设置中。
默认情况下,inspectdb
创建非托管模型。也就是说,模型的 Meta
类中的 managed = False
告诉 Django 不要管理每个表的创建、修改和删除。
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 生成的模型,直到它们按您想要的方式工作。尝试通过 Django 数据库 API 访问您的数据,并尝试通过 Django 的管理站点编辑对象,并相应地编辑模型文件。