Python构建RESTful网络服务[Django篇:使用PostgreSQL替代SQLite]

2020-06-17 00:00:00 用户 环境 评论 荣耀 我有

文章提要:

  • 安装PostgreSQL
  • 用PostgreSQL取代SQLite作为Django的模型数据库
  • 使用Python操作PostgreSQL
  • 使用Django模型类操作PostgreSQL

先导文章:

润润万睡:Python构建RESTful网络服务[Django篇:基于函数视图的API]zhuanlan.zhihu.com

本文是系列文章《Python构建RESTful网络服务[Django篇]》的一部分,但本文可以作为独立博文阅读,但仍建议阅读先导文章。

为什么要使用PostgreSQL?

  • 比SQLite更时髦(虽然我个人很喜欢SQLite,平时我个人的大部分存储需求它都能满足,关键是它还便携,可以随时拷贝走,我曾把花了19万买购的数据就放在SQLite里装在U盘里带来带去……不要学我);
  • 更像是在做开发,而不是在玩玩;
  • 项目终是要上线的,不如从现在开始,就用PostgreSQL;
  • 好了,我理解为什么不用SQLite了,那为什么不用MySQL?——因为我的开发环境用的是WSL(Windows Subsystem of Linux),目前还装不了MySQL。

为什么要用WSL

  • 可以不用。
  • 但如果你没有试过WSL,可以尝试下。Windows10是好的桌面系统(不接受反驳,用过Mac、不下十款的Linux桌面系统、微软家的其他系统,得出结论,Windows10是好的桌面系统),所以建议在Windows10下完成能在Windows10完成的所有事。本项目中除了后部署上服务器外,所有事都能在Windows下完成。
  • 终部署的环境是Ubuntu环境,所以从现在开始,使用Ubuntu也不错。
  • WSL Ubuntu有Ubuntu的几乎所有功能(至少有几乎所有本项目能用上的功能),而且能跟“宿主”机有很好的互动。比如文件系统几乎是互通的,你可以在Ubuntu下访问Windows下的 文件,这一点是虚拟机比不上的。
  • WSL是一个应用,一旦环境被你弄毁了,大不了卸载重装,比重装一个物理机方便多了。

如何安装WSL

不在本文所叙范围,请移移步必应。简单来说,先在启动功能中启用子系统功能,再到Windows商店中安装Ubuntu就好了。

安装PostgreSQL

我在WSL Ubuntu中安装了PostgreSQL,也在一台Fedora23的机器上安装了PostgreSQL,过程大同小异。以下以Ubuntu为例

# 安装PostgreSQL
$ sudo apt update
$ sudo apt install postgresql postgresql-contrib

# 安装PostgreSQL后,它会为你的系统添加一个名为postgres的用户
# 创建PostgreSQL用户(角色)
# 以交互方式创建一个角色,我创建的是webdev,跟我的Linux用户同名。这个角色有超级权限。
$ sudo - i -u postgres createuser --interactive
(webdev)

相关文章