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

posted @ 2020-08-24 10:26  小土豆biubiubiu  阅读(4786)  评论(0编辑  收藏  举报