使用Django連接PostgreSQL資料庫 | Django

在開發網站應用程式時,使用 Django 搭配 PostgreSQL 資料庫是一個常見的組合。本文將介紹如何透過 Psycopg2 套件,將 DjangoPostgreSQL 連接起來。

步驟一:安裝Psycopg2

首先,確保已經安裝了Psycopg2套件。你可以使用pip來安裝:

pip install psycopg2

如果遇到Linux相關的問題

例如: python setup.py egg_info did not run successfully. 解決方案

# 安裝依賴
sudo apt-get install libpq-dev python-dev python3-dev     # Ubuntu/Debian
sudo yum install postgresql-devel python-devel python3-devel # CentOS/RHEL
# 更新pip 相關套件
pip install --upgrade pip
pip install --upgrade setuptools wheel
# 重新安裝 psycopg2
pip install psycopg2

步驟二:設定Django專案的資料庫設定

在Django專案中,我們需要在設定檔中配置資料庫連接。打開專案中的settings.py檔案,尋找DATABASES設定區塊,並將其設定為:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'your_database_name',
        'USER': 'your_database_user',
        'PASSWORD': 'your_database_password',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

請將your_database_nameyour_database_useryour_database_password替換為你的PostgreSQL資料庫名稱、使用者名稱和密碼。

步驟三:執行遷移

執行Django的資料庫遷移命令,以確保資料庫結構與模型一致:

python manage.py migrate

步驟四:測試連接

現在,我們可以測試連接是否成功。在Django專案的命令列中執行以下命令:

python manage.py shell

然後,在Python shell中嘗試匯入模型類以驗證連接:

from your_app.models import YourModel

如果沒有出現錯誤,則表示連接成功。

範例

假設我們有一個名為Post的模型,代表網誌中的文章。我們可以在models.py中定義這個模型:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

這樣就建立了一個簡單的文章模型。現在,你可以執行資料庫遷移,並在管理後台中使用這個模型了。

透過以上步驟,你已經成功地將Django與PostgreSQL連接起來,並建立了一個簡單的模型。希望這個指南對你有所幫助!