Kết nối với cơ sở dữ liệu
Sửa đổi cài đặt
Để Django có thể kết nối với cơ sở dữ liệu của bạn, bạn phải chỉ định nó trong bộ dữ liệu DATABASES
trong tệp settings.py
.
Trước đây nó trông như thế này:
SQLite
my_tennis_club/my_tennis_club/settings.py
:
.
.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
.
Bây giờ, bạn nên thay đổi nó trông như thế này:
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'
}
}
.
Lưu ý: Các giá trị sẽ khác nhau đối với dự án của bạn.
Động cơ?
Như bạn có thể thấy trong tệp settings.py
, chúng tôi chèn postgresql
thay vì sqlite
.
Tên?
Cơ sở dữ liệu không có tên nhưng bạn phải đặt tên để truy cập cơ sở dữ liệu.
Nếu không có tên nào được đưa ra, nhà cung cấp sẽ chấp nhận 'postgres'
làm tên của cơ sở dữ liệu.
Tên người dùng và mật khẩu?
Chèn tên người dùng và mật khẩu mà bạn đã chỉ định khi tạo cơ sở dữ liệu.
Chủ nhà? Hải cảng?
Như bạn có thể thấy trong tệp settings.py
, chúng tôi chèn postgresql
thay vì sqlite
và chèn tên người dùng và mật khẩu mà chúng tôi đã chỉ định khi tạo cơ sở dữ liệu.
Bạn có thể tìm thấy HOST
và PORT
trong phần "Kết nối và bảo mật" trong phiên bản RDS. Chúng được mô tả là "Điểm cuối" và "Cổng":
Dự án nào của tôi là thế này:
'HOST': 'w3-django-project.cdxmgq9zqqlr.us-east-1.rds.amazonaws.com'
'PORT': '5432'
Di cư
Khi chúng tôi đã thực hiện các thay đổi trong settings.py
, chúng tôi phải chạy di chuyển trong môi trường ảo của mình trước khi các thay đổi diễn ra:
py manage.py migrate
Điều này sẽ cho bạn kết quả này:
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
Bây giờ, nếu bạn chạy dự án:
py manage.py runserver
Và xem nó trong trình duyệt của bạn: 127.0.0.1:8000/
.
Bạn sẽ nhận được trang chủ của dự án, nhưng nếu bạn nhấp vào liên kết "thành viên", bạn sẽ thấy rằng không có thành viên nào.
Đó là vì cơ sở dữ liệu trống. Trong chương tiếp theo, chúng ta sẽ điền vào cơ sở dữ liệu các thành viên.