例如,以下是我的 settings.py 文件中设置的数据库。
DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql',
'USER': 'postgres_user',
'PASSWORD': 's3krit'
},
'my_blog': {
'NAME': 'my_blog',
'ENGINE': 'django.db.backends.mysql',
'HOST': '192.168.1.40',
'USER': 'mysql_user',
'PASSWORD': 'priv4te'
}
}
我需要从 my_blog 数据库获取一些信息。
我没有对此数据库的写入权限,我只需要执行简单的 select
查询。
你建议我怎么做?
最佳答案
当您使用多个数据库时,您需要做的是更改针对相同数据库进行的查询的数据库路由规则。
您可以在此处阅读更多内容。 https://docs.djangoproject.com/en/1.10/topics/db/multi-db/
class MyBlogRouter(object):
"""
A router to control all database operations on models in the
auth application.
"""
def db_for_read(self, model, **hints):
"""
Attempts to read blog models go to my_blog.
"""
if model._meta.app_label == 'my_blog':
return 'my_blog'
return None
在你的settings.py中
DATABASE_ROUTERS = ['path.to.MyBlogRouter',]
关于python - 不同数据库上的 Django MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41929904/