连接到数据库


修改设置

为了让 Django 能够连接到你的数据库,你必须在DATABASES元组中的settings.py文件。

以前,它看起来像这样:

SQLite

my_tennis_club/my_tennis_club/settings.py:

.
.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
.

现在,您应该将其更改为如下所示:

PostgreSQL

my_tennis_club/my_tennis_club/settings.py:

.
.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'masteruser',
        'PASSWORD': '12345678',
        'HOST': 'w3-django-project.cdxmgq9zqqlr.us-east-1.rds.amazonaws.com',
        'PORT': '5432'
    }
}
.

笔记:对于您的项目,这些值会有所不同。


引擎?

正如你在settings.py文件,我们插入postgresql代替sqlite


姓名?

该数据库没有名称,但您必须指定一个名称才能访问该数据库。

如果未提供姓名,则提供商接受'postgres'作为数据库的名称。


用户名和密码?

插入您在创建数据库时指定的用户名和密码。


主持人?港口?

正如你在settings.py文件,我们插入postgresql代替sqlite,并插入我们在创建数据库时指定的用户名和密码。

这个HOSTPORT可以在 RDS 实例的 "Connectivity & security" 部分下找到。它们被描述为 "Endpoint" 和 "Port":

对于我的项目来说是这样的:

'HOST': 'w3-django-project.cdxmgq9zqqlr.us-east-1.rds.amazonaws.com'
'PORT': '5432'


迁移

一旦我们完成了以下更改settings.py,在发生更改之前,我们必须在虚拟环境中运行迁移:

py manage.py migrate

这会给你这个结果:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, members, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying members.0001_initial... OK
  Applying members.0002_members_delete_member... OK
  Applying members.0003_rename_members_member... OK
  Applying sessions.0001_initial... OK

现在,如果您运行该项目:

py manage.py runserver

并在浏览器中查看: 127.0.0.1:8000/

您将看到该项目的主页,但如果单击 "members" 链接,您将看到没有成员。

那是因为数据库是空的。在里面下一章我们将用成员填充数据库。