python - 不同数据库上的 Django MySQL

标签 python mysql django database

例如,以下是我的 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/

相关文章:

python - 在 Tkinter 中将颜色绑定(bind)到按钮会导致 TclError

python - 在 python 中是否有更快的方法将字符串转换为 float ?

php - Yammer SDK-获取用户信息(JSON到PHP)

php - cakephp 的模型关联问题

HTML 输入文件 - 如何翻译 "Choose File"和 "No file Chosen"?

django - 您如何使用 AWS Elastic Beanstalk 运行工作程序?

Django 注销(重定向到主页).. 删除 cookie?

python - 属性错误: type object 'FilePath' has no attribute '_flavour' [pydantic]

python - 导入错误: cannot import name 'LinearNDInterpolator'

mysql - 如何为PCF mySQL数据库设置mysql开发人员来管理它