Django app配置多个数据库代码实例
作者:luozx207 时间:2023-06-11 09:11:25
这篇文章主要介绍了Django app配置多个数据库代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
每个app使用不同的数据库
1. 配置数据库连接
# settings.py
# DATABASES中必须要有default字段
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db',
'USER': '',
'PASSWORD': '',
'HOST': "localhost",
'OPTIONS': {'init_command': 'SET default_storage_engine=INNODB;'}
},
'db1': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db1',
'USER': '',
'PASSWORD': '',
'HOST': "localhost",
'OPTIONS': {'init_command': 'SET default_storage_engine=INNODB;'}
}
}
2. 配置数据库路由
# settings.py
DATABASES_APPS_MAPPING = {
'app1': 'default',
'app2': 'db1',
}
DATABASE_ROUTERS = ['utils.database_router.DatabaseAppsRouter']
3. 数据库路由文件:
from django.conf import settings
class DatabaseAppsRouter(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
至此,使用app1的model会访问default数据库,使用app2的model会访问db1数据库
同一个app下使用不同数据库
只需要在model class中修改app_label的值即可,app_label默认为此model所在app的名称
class Book2(models.Model):
author = models.CharField(max_length=1024, blank=True, null=True)
title = models.CharField(max_length=1024)
class Meta:
app_label = 'db1'
来源:https://www.cnblogs.com/luozx207/p/11790659.html
标签:Django,app,配置,多,数据库
0
投稿
猜你喜欢
利用Go语言实现Raft日志同步
2024-03-15 02:55:20
Python anaconda安装库命令详解
2023-01-31 16:36:36
python多线程分块读取文件
2023-10-29 18:48:51
Servermanager启动连接数据库错误如何解决
2024-01-13 23:46:55
python中列表添加元素的几种方式(+、append()、extend())
2022-07-17 19:59:42
python 获取微信好友列表的方法(微信web)
2022-02-20 10:05:21
python pandas loc 布尔索引示例说明
2021-02-28 22:43:19
微信小程序实现滑动删除效果
2024-04-19 10:03:45
SQL提供的进行数据传输的实用程序—BCP
2009-01-23 13:45:00
小议sqlserver数据库主键选取策略
2011-10-24 19:51:30
OpenCV图像缩放之cv.resize()函数详解
2021-02-06 12:36:58
Python读取系统文件夹内所有文件并统计数量的方法
2021-11-14 07:39:28
hmac模块生成加入了密钥的消息摘要详解
2023-05-17 09:26:46
全面解读Python Web开发框架Django
2022-06-24 19:41:45
asp Access数据备份,还原,压缩类代码
2011-03-07 11:16:00
mysql主从服务器同步心得体会第1/2页
2024-01-18 13:34:20
深入理解Python虚拟机中的Code obejct
2023-05-05 02:39:31
WxPython界面利用pubsub如何实现多线程控制
2021-01-28 08:10:03
学习ASP.NET八天入门:第四天
2007-08-07 13:40:00
用蜜罐来阻止垃圾评论
2007-11-06 12:35:00