1. 程式人生 > 實用技巧 >如何在Django中配置使用PostgreSQL

如何在Django中配置使用PostgreSQL

前言

本文主要用於記錄一次自己在django專案中配置和使用PostgreSQL的過程,同時記錄在這個過程中出現的一些問題解決方案

專案環境說明

伺服器作業系統:CentOS Linux 7 (Core) Django版本:1.10.1 python版本:2.7.5

本次記錄過程中的操作均基於上面描述的環境和軟體版本

第一步: 配置settings

django專案的主app中找到專案的settings.py檔案,找到關於Database的設定。

django預設使用的是sqlite3資料庫,所以我們先將預設的兩行配置註釋,然後新增上關於postgreSQL的配置。

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': '' # 資料庫名稱
        'USER': '' # 登入資料庫使用者名稱
        'PASSWORD': '', # 登入資料庫密碼
        'HOST': '' # 資料庫伺服器的主機地址
        'PORT': '' # 資料庫服務的埠號
    }

第二步:安裝psycopg2

安裝psycopg2的命令為:pip install psycopg2

本次我在執行該命令後出現了下面這樣的錯誤:

錯誤指出了缺少Python.h這個檔案,並且提示:It appears you are missing some prerequisite to build the package from source

在往下看錯誤資訊為:
You may install a binary package by installing 'psycopg2-binary' from PyPI. If you want to install psycopg2 from source, please install the packages required for the build and try again.

大致意思就是說使用pip這種方式安裝psycopg2缺少某些必要的包(比如Pythoh.h),並建議安裝二進位制包。先拋開它的這些提示,看到後面的提示:For further information please check the 'doc/src/install.rst' file (also at <https://www.psycopg.org/docs/install.html>)
接著我就打開了https://www.psycopg.org/docs/install.html這個頁面,仔細去通讀這個頁面的如下部分內容: 它很明確的告訴我們使用pip安裝psycopg2必須滿足那些條件,其中第二條就明確說明需要依賴Python

標頭檔案,如果沒有就會出現類似:Python.h:沒有那個檔案或目錄這樣的錯誤。

到這裡基本上就知道怎麼解決上面的錯誤了,所以接下來我們就需要根據錯誤提示資訊,安裝依賴的包。

安裝python-dev

安裝命令:yum install python-devel

centos中的包名稱叫python-devel,而不是python-dev 執行yum install python-dev會提示你沒有可用軟體包

安裝libpq-dev

安裝命令:yum install postgresql-devel

同樣,centos中的包名稱叫postgresql-devel,而不是libpq-dev

安裝psycopg2

最後一步在進行安裝就可以成功安裝了。

第三步:測試是否配置成功

那最後一步就是來測試一下我們是否成功配置好了PostgreSQL