zoukankan      html  css  js  c++  java
  • 如何在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

  • 相关阅读:
    Marker
    Log4j 2
    Spring 中 CharacterEncodingFilter 失效?
    Java 泛型通配符
    待修 Bug
    Java Class SecurityManager
    bzoj 5210: 最大连通子块和【动态dp+树剖+线段树+堆】
    洛谷 P4719 【模板】动态dp【动态dp】
    bzoj 2555: SubString【后缀自动机+LCT】
    洛谷 P4125 [WC2012]记忆中的水杉树【扫描线+set+线段树】
  • 原文地址:https://www.cnblogs.com/HouJiao/p/13525176.html
Copyright © 2011-2022 走看看