【问题标题】:How does Django know the path to my database?Django 如何知道我的数据库的路径?
【发布时间】:2022-06-15 23:31:49
【问题描述】:

按照 Django 教程,我决定使用 Postgresql 而不是 SQLlite。

我将以下内容添加到我的设置文件中,一切正常:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'django_tutorial',
        'USER': 'django_admin',
        'PASSWORD': 'password123',
        'HOST': '127.0.0.1',
        'PORT': '5432'
    }
}

django_tutorial=> \dt
                     List of relations
 Schema |            Name            | Type  |    Owner
--------+----------------------------+-------+--------------
 public | accounts                   | table | django_admin
 public | auth_group                 | table | django_admin
 public | auth_group_permissions     | table | django_admin
 public | auth_permission            | table | django_admin
 public | auth_user                  | table | django_admin
 public | auth_user_groups           | table | django_admin
 public | auth_user_user_permissions | table | django_admin
 public | django_admin_log           | table | django_admin
 public | django_content_type        | table | django_admin
 public | django_migrations          | table | django_admin
 public | django_session             | table | django_admin
(11 rows)

我的问题是 - Django 如何知道 postgresql 的位置?本来以为名字应该是C:\路径,结果只需要DB名?

例如,文档对 sqllite 的描述如下:

要使用的数据库的名称。对于 SQLite,它是数据库文件的完整路径。指定路径时,请始终使用正斜杠,即使在 Windows 上也是如此(例如 C:/homes/user/mysite/sqlite3.db)。

【问题讨论】:

  • 您运行数据库服务器。该服务器侦听一个端口,然后您通过该连接发送查询。

标签: django


【解决方案1】:

Django 如何知道 postgresql 的位置?

,这不是 Django 负责的。您运行 PostgreSQL 数据库服务器。该服务器侦听一个 port 并知道它存储包含数据的文件的位置。 Django 将打开与该数据库服务器的连接,并通过查询与数据库服务器通信。因此,数据库是一个独立应用程序

对于 SQLite,它是数据库文件的完整路径。

对于 SQLite,情况有所不同,在这种情况下,有一个软件包可以操作文件,因此不涉及数据库服务器。这不是一个独立的应用程序,它是一个操作文件的库。

对于数据库服务器,您通常有权访问底层文件。例如,服务器可能在不同的机器上运行。这可能更安全,因为以某种方式设法访问 Web 服务器的黑客可能可以通过获取密码访问文件和数据库,但不能访问在同一数据库服务器上运行的其他数据库。

【讨论】:

    猜你喜欢
    • 2018-11-24
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2017-01-02
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    相关资源
    最近更新 更多