如何在Django中配置使用PostgreSQL


作者:小土豆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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM