虽然Django最适合开发新的应用程序,但它很有可能集成到遗留数据库中。Django包含两个实用程序,以尽可能多地自动化此过程。
本文档假设您了解Django基础知识,如 tutorial .
一旦您设置了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
创建非托管模型。也就是说, managed = False
在模型中 Meta
类告诉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
是其默认值)。
接下来,运行 migrate
命令安装任何额外需要的数据库记录,如管理员权限和内容类型:
$ python manage.py migrate
这些是基本步骤——从这里开始,您将希望调整Django生成的模型,直到它们按照您希望的方式工作。尝试通过django数据库API访问数据,并尝试通过django的管理站点编辑对象,并相应地编辑模型文件。
12月 18, 2023