Django - 我们可以连接到不同的远程数据库

时间:2013-04-24 22:30:10

标签: python django python-2.7 mysql-python remote-server

我正在编写一个Django应用程序,我已经在settings.py中配置了1个mysql后端数据库。

我知道我们可以根据需要添加尽可能多的数据库配置,但那是我不想要的hard coding ...而不是我不得不这样做,因为我必须大声连接说,大约70 -80种不同的远程机器,查询并获取结果。

我计划通过他们的IP address连接到这些机器。

我对Django比较陌生,所以我想知道我们是否能以某种方式,通过输入以下配置来创建一个查询机器的function

DATABASES = {
 'default': {
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'dbName',
    'USER': 'root',                     
    'PASSWORD': 'root',                  
    'HOST': '',                      
    'PORT': '3306'
  }
}

因此,我可以通过DATABASES and default或其他东西配置我的函数来改变配置,而不是Ajax call

幸运的是,我必须连接的每台机器都使用mysql,所以没问题。 我调查this mysql -python connector但不确定是否应该使用它,因为我已经安装了MySQLDb。我也必须做一些raw queries:|

有人能引导我找出适合这种情况的最佳方法吗?

P.S:我还看了this post,讨论了从本地连接到远程mysql机器的问题。但这对我没有帮助:( :(

1 个答案:

答案 0 :(得分:1)

我相信你可以采取很多途径,其中3条是:

  1. 使用using添加DATABASES中的所有连接 - 您说您不想这样做,因为您有这么多的连接

  2. 您可以使用python的mysql库进行连接。如果你这样做,我认为你不会使用djangos nice ORM

  3. 看看django如何包装连接以允许您使用他们的ORM。我做了一些关于使用django ORM手动建立连接的快速搜索,但没有找到任何东西。所有答案都在source code。我相信您可以使用ORM实例化您自己的连接并与远程数据库进行交互。我现在没有时间仔细研究,但一切都在源头