如何在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