【问题标题】:Django - Can we make a connection to different remote databaseDjango - 我们可以连接到不同的远程数据库吗
【发布时间】:2013-04-18 16:11:23
【问题描述】:

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

我知道我们可以根据需要添加任意数量的数据库配置,但这是我不想要的 hard coding。我不可能这样做,因为我不得不临时连接说,大约 70-80不同的远程机器并查询和获取结果。

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

我对@9​​87654325@ 比较陌生,所以我想知道我们是否可以通过某种方式创建一个function,通过输入类似的配置来查询机器:

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

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

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

谁能指导我解决这种情况的最佳方法是什么?

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

【问题讨论】:

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


    【解决方案1】:

    我相信你可以走很多路,其中 3 条是:

    1. 使用using 将所有连接添加到DATABASES - 你说你不想这样做,因为你有很多连接

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

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

    【讨论】:

    • 哇,我可以实例化远程数据库并使用 Django 的 ORM 吗?如果可以的话,我会认为它比我的女朋友更漂亮!在Java 中,就像几行代码,你好!你可以根据需要配置任何连接!感谢@dm03514 提供链接,将对其进行调查。这里还有一个问题是,如果我使用python's mysql library,我是否仍然可以将Django's ORM 用于我配置的对象并使用raw sql queries 查询我的远程数据库?再次感谢!
    猜你喜欢
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2014-12-15
    • 2019-02-21
    • 2016-10-29
    • 2018-10-05
    • 1970-01-01
    相关资源
    最近更新 更多