【问题标题】:Django : How to access a localhost database hosted by a user?Django:如何访问用户托管的本地主机数据库?
【发布时间】:2019-08-10 08:17:01
【问题描述】:

我想开发一个网站(带有自己的数据库),所有用户都将在他们的计算机上托管一个小型数据库(SQlite 或 mySQl)。我需要找到一种方法让用户访问他们的本地数据库并在网站上使用它。

我阅读了有关多数据库 (https://docs.djangoproject.com/en/dev/topics/db/multi-db/) 的文档,我们可以在设置中告诉 django 它需要连接到哪个数据库。

例如:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

如何告诉 django 连接到用户托管的数据库?我假设 127.0.0.1 将引用 django 服务器的本地主机。我说的对吗?

【问题讨论】:

    标签: django database python-3.x


    【解决方案1】:

    我认为您完全误解了 Django 或后端的概念。

    Django 在主机上运行,​​它可以是服务器、云主机、本地机器等。当您使用 127.0.0.1 作为数据库服务器主机地址时,您的目标是运行 Django 的主机的 localhost .您不能简单地从 django 或 python 在客户端启动 MySQL 服务器,您不能做任何事情。您甚至无法启动 SQLite 数据库,因为 django 根本无法查看用户的文件系统。

    您到底想达到什么目的?如果你想在本地数据库上构建一些东西,它必须在本地运行,或者你必须以某种方式将数据库文件挂载到 django,这将是一个快照而不是实时更改。

    【讨论】:

    • 您好,我们的目的不是在客户端启动 MySQL 服务器。在网站上注册后,客户端将下载并安装数据库(例如 MySQL)。我的问题是如何在我的 django 服务器和他们的本地数据库之间进行通信,而不添加客户端数据库的所有 IP。不知道这样比较好理解。
    猜你喜欢
    • 2021-08-11
    • 2012-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2016-07-06
    • 1970-01-01
    相关资源
    最近更新 更多