如何在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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?