0

Kết nối Django với database

image.png

Tìm hiểu về cấu hình Database

  • Trong file settings.py có tùy chọn về DATABASES

    DATABASES = {
        "default": {
            "ENGINE": "django.db.backends.sqlite3",
            "NAME": "mydatabase",
        }
    }
    
  • Về mặc định Django sẽ kết nối với Sqlite3 với engine'django.db.backends.sqlite3'


Giải thích về tùy chọn DATABASES

Về cơ bản DATABASES là một dict

  • key là tên của database, mặc định là default. Nó dùng trong DB routing (mình sẽ có bài viết về nó sau)

  • value là cấu hình của nó

    • ENGINE là loại database kết nối. Hiện tại Django hỗ trợ các loại database sau:

      • PostgreSQL: 'django.db.backends.postgresql'. Yêu cầu thư viện psycopg2-binary
      • MySQL: 'django.db.backends.mysql'. Yêu cầu thư viện mysqlclient
      • SQLite3: 'django.db.backends.sqlite3'
      • Oracle: 'django.db.backends.oracle'. Yêu cầu thư viện cx_Oracle
    • HOST cấu hình địa chỉ máy chủ cơ sở dữ liệu

      • Mặc định là chuỗi rỗng ➡️ kết nối đến SQLite3
    • PORT cấu hình kết nối cổng của cơ sở dữ liệu

    • USER cấu hình tên đăng nhập của cơ sở dữ liệu

    • PASSWORD cấu hình mật khẩu đăng nhập cơ sở dữ liệu

    • NAME tên của cơ sở dữ liệu

      • Khi dùng SQLite3 nó là đường dẫn của file Sqlite
    • Ngoài ra bạn có thể cấu hình kết nối database khi chạy test tại đây bằng tùy chọn TEST


Ví dụ về cấu hình DATABASES

  • Ví dụ kết nối đến PostgreSQL, với host là localhost, port 5432, username postgres, password postgres và tên database là data

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'HOST': 'localhost',
            'PORT': 5432,
            'USER': 'postgres',
            'PASSWORD': 'postgres',
            'NAME': 'data',
        }
    }
    
  • Ngoài ra bạn có thể kết hợp với bài viết Đọc file biến môi trường - Environment file (.env) bằng Python để tăng bảo mật cũng như về mặt làm sạch code.


Tài liệu tham khảo


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí