只是在学习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)

我的问题是-How does Django know where postgresql is located? Originally I thought the name was supposed to be the C:\ path, but it only needed the DB name?

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

The name of the database to use. For SQLite, it’s the full path to the database file. When specifying the path, always use forward slashes, even on Windows (e.g. C:/homes/user/mysite/sqlite3.db).

推荐答案

Django如何知道postgresql的位置?

这不是Django的责任.您运行的是PostgreSQL数据库server.该服务器侦听port并知道它将包含数据的文件存储在哪里.Django将打开与该数据库服务器的连接,并通过查询与该数据库服务器进行对话.因此,数据库是standalone app.

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

对于SQLite,情况有所不同,在这种情况下,有一个处理文件的软件包,因此不涉及数据库server.这不是一个独立的app,它是一个处理文件的库.

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

Django相关问答推荐

Django中有修改字段值的挂钩吗?

与django相关的预取n +1问题.我该怎么解决呢?

如何在Django中获取标记<;输入>;的';值';属性?

""关系"core_Boundary_summary的列user_id中的空值"违反了非空约束|失败行包含(2,title,string,null)

如何在Django REST框架中使用FactoryBoy创建不同的项目

为特定表行更新或创建

如何在视图中的 Django 重定向末尾附加字符串?

Django ORM 查询优化问题

DeleteView 中的success_message 未显示

Django基于类的视图上的success_url的反向抱怨循环导入

Django 模型中的隐藏字段

django 用一个提交按钮提交两种不同的表单

Django UrlResolver,在运行时添加 url 进行测试

在 Mac OS X 上安装支持 JPEG 的 PIL

保存前向 ModelForm 对象添加数据

UpdateView 中的success_url,基于传递的值

如何获取 pytz 时区的通用名称

如何从 django 请求中获取完整的 url

防止 django 管理员转义 html

Django 字符串到日期格式