栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python配置多数据源

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python配置多数据源

每个app使用不同的数据库

  1. 配置数据库连接

就是在settings.py 的DATAbaseS中配置数据库

配置数据库时必须要有default字段

例如:

 

  1. 配置数据库路由  

在settings.py 添加DATAbaseS_APPS_MAPPING 和DATAbase_ROUTERS

例子:

 # 多数据源配置
DATAbaseS_APPS_MAPPING = {
    'demoapp': 'shujuku1',
    'myapp': 'default',
}
DATAbase_ROUTERS = ['application.db_router.DatabaseRouter']   # (引号很重要)

具体详解:

DATAbaseS_APPS_MAPPING中的内容是把app和数据库连接对应起来

DATAbase_ROUTERS是指向数据库路由文件的具体地址

Application  包名

db_router   文件名

DatabaseRouter  方法名

  1. 数据库路由文件

上边的文件代码

# -*- coding: utf-8 -*-
from application import settings


class DatabaseRouter(object):
    def db_for_read(self, model, **hints):
        app_label = model._meta.app_label
        if app_label in settings.DATAbaseS_APPS_MAPPING:
            return settings.DATAbaseS_APPS_MAPPING[app_label]
        return None

    def db_for_write(self, model, **hints):
        app_label = model._meta.app_label
        if app_label in settings.DATAbaseS_APPS_MAPPING:
            return settings.DATAbaseS_APPS_MAPPING[app_label]
        return None

至此,使用myapp的model会访问default数据库,使用demoapp的model会访问shujuku1数据库

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/580479.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号