作者:小土豆biubiubiu
博客園:https://www.cnblogs.com/HouJiao/
掘金:https://juejin.im/user/2436173500265335
微信公眾號:不知名寶藏程序媛
(文章公眾號首發,其他平台會晚一兩天,所以關注公眾號就可以啦)
作者文章的內容均來源於自己的實踐,如果覺得有幫助到你的話,可以點贊❤️給個鼓勵或留下寶貴意見
前言
本文主要用於記錄一次自己在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