Django应用程序配置多个数据库代码实例

  

这篇文章主要介绍了Django应用程序配置多个数据库代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  

每个应用使用不同的数据库

  

<强> 1。配置数据库连接
  

        # settings.py   #数据库中必须要有默认字段   数据库={   “默认”:{   “发动机”:“django.db.backends.mysql”,   “名称”:“数据库”,   “用户”:”,   “密码”:”,   “主机”:“localhost”,   “选项”:{“init_command”:“设置default_storage_engine=INNODB;”}   },   “db1”: {   “发动机”:“django.db.backends.mysql”,   “名称”:“db1”,   “用户”:”,   “密码”:”,   “主机”:“localhost”,   “选项”:{“init_command”:“设置default_storage_engine=INNODB;”}   }   }      

<强> 2。配置数据库路由
  

        # settings.py   DATABASES_APPS_MAPPING={   “app1”:“违约”,   “app2”:“db1”,   }      DATABASE_ROUTERS=[' utils.database_router.DatabaseAppsRouter ']      

<强> 3。数据库路由文件:
  

        django。配置导入设置         类DatabaseAppsRouter(对象):   def db_for_read(自我、模型* *提示):   app_label=model._meta.app_label   如果app_label settings.DATABASES_APPS_MAPPING:   返回settings.DATABASES_APPS_MAPPING [app_label]   回来没有      def db_for_write(自我、模型* *提示):   app_label=model._meta.app_label   如果app_label settings.DATABASES_APPS_MAPPING:   返回settings.DATABASES_APPS_MAPPING [app_label]   返回所有      

至此,使用app1的模型会访问违约数据库,使用app2的模型会访问db1数据库
  

  

<强>同一个app下使用不同数据库
  

  

只需要在模型类中修改app_label的值即可,app_label默认为所此模型在应用的名称
  

        类Book2 (models.Model):   作者=模型。CharField (max_length=1024,空白=True, null=True)   title=models.CharField (max_length=1024)      类元:   app_label=' db1 '      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Django应用程序配置多个数据库代码实例