举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > django 多数据库 Django4.0 多数据库-定义数据库

django 多数据库 Django4.0 多数据库-定义数据库

2023-03-30 10:18 Django4中文教程

django 多数据库 Django4.0 多数据库-定义数据库

django 多数据库 Django4.0 多数据库-定义数据库

django 多数据库

首先告知 Django,你正在使用至少2个数据库服务。通过 ​DATABASES ​配置来将指定的数据库链接放入一个字典,以此来映射数据库别名,数据库别名是在整个Django中引用特定数据库的一种方式。

可以选择任意的数据库别名,但是``​default​`` 别名具有特殊意义。当没有数据库指定选择的时候,Django 使用带有 ​default ​别名的数据库。

接下来一个 ​settings.py​ 片段,定义了2个数据库——默认的 PostgreSQL 数据库和名叫 ​users ​的 MySQL 数据库。

DATABASES = {
    "default": {
        "NAME": "app_data",
        "ENGINE": "django.db.backends.postgresql",
        "USER": "postgres_user",
        "PASSWORD": "s3krit"
    },
    "users": {
        "NAME": "user_data",
        "ENGINE": "django.db.backends.mysql",
        "USER": "mysql_user",
        "PASSWORD": "priv4te"
    }
}

如果 ​default ​数据库的设计在项目中没有使用,那么你需要特别注意始终指定你所使用的数据库。Django 需要定义 ​default​ 数据库,但如果没有使用数据库的话,参数字典可以置空。这样,你必须为所有的模型,包括你所使用的任何 ​contrib ​和第三方 app 设置 ​DATABASE_ROUTERS​,所以不会有任何查询路由到默认数据库。下面示例来讲在默认数据库为空的情况下,如何定义两个非默认数据库:

DATABASES = {
    "default": {},
    "users": {
        "NAME": "user_data",
        "ENGINE": "django.db.backends.mysql",
        "USER": "mysql_user",
        "PASSWORD": "superS3cret"
    },
    "customers": {
        "NAME": "customer_data",
        "ENGINE": "django.db.backends.mysql",
        "USER": "mysql_cust",
        "PASSWORD": "veryPriv@ate"
    }
}

如果您尝试访问您尚未在 ​DATABASES ​设置中定义的数据库,Django 将引发 ​django.utils.connection.ConnectionDoesNotExist​ 异常。


阅读全文
以上是编程学为你收集整理的django 多数据库 Django4.0 多数据库-定义数据库全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部