Python构建RESTful网络服务[Django篇:使用PostgreSQL替代SQLite]
文章提要:
- 安装PostgreSQL
- 用PostgreSQL取代SQLite作为Django的模型数据库
- 使用Python操作PostgreSQL
- 使用Django模型类操作PostgreSQL
先导文章:
润润万睡:Python构建RESTful网络服务[Django篇:基于函数视图的API]本文是系列文章《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)
相关文章