2013-04-24 29 views
3

我正在写一个Django应用程序,我已经在我的settings.py中配置了1个mysql后端数据库。Django - 我们可以建立一个连接到不同的远程数据库

我知道我们可以根据需要添加尽可能多的db配置,但这是我不想要的hard coding ..而不可能做,因为我必须ad-hockly连接说,大约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

+1“ad-hockly”。 – 2013-04-25 07:27:39

回答

1

我相信有相当可以采取几个路径,其中3个是:

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

  2. 你可以连接使用Python的MySQL库。如果你这样做,我不认为你会得到使用Django的ORM好看

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

+0

哇,我可以实例化远程数据库并使用Django的ORM?如果可能的话,我会认为这比我的女朋友更美丽!在'Java'中,就像几行代码和hola!一样,你可以根据需要配置任何连接!感谢@ dm03514提供的链接,将研究它。还有一个问题是,如果我使用'python的mysql库',我还可以使用'Django的ORM'作为我的配置对象,只需使用'raw sql queries'查询我的远程数据库?再次感谢! – 2013-04-24 23:04:18