将Django与传统数据库集成

虽然Django最适合开发新的应用程序,但是很有可能将其集成到传统数据库中。 Django包含了几个实用程序来尽可能多地自动化这个过程。

本文假定您知道Django基础知识,如tutorial中所述。

一旦你建立了Django,你将遵循这个一般的过程来整合现有的数据库。

给Django数据库参数

你需要告诉Django你的数据库连接参数是什么,以及数据库的名字是什么。 通过编辑DATABASES设置并将值分配给'default'连接的以下键来完成此操作:

自动生成模型

Django提供了一个名为inspectdb的实用程序,可以通过自检现有数据库来创建模型。 您可以通过运行以下命令来查看输出:

$ python manage.py inspectdb

使用标准的Unix输出重定向将其保存为文件:

$ python manage.py inspectdb > models.py

这个功能是作为一个捷径,而不是一个明确的模型一代。 See the documentation of inspectdb for more information.

清理好模型之后,将文件命名为models.py,并将其放在包含应用程序的Python包中。 然后将该应用添加到您的INSTALLED_APPS设置中。

默认情况下,inspectdb创建非托管模型。 That is, managed = False in the model’s Meta class tells Django not to manage each table’s creation, modification, and deletion:

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生成的模型,直到按照您喜欢的方式工作。 尝试通过Django数据库API访问数据,并尝试通过Django的管理站点编辑对象,并相应地编辑模型文件。