引言
在本文中,您将学习如何使用 Flask、SQLite 3(轻易数据库)和 JSON 创建用于数据通信的 REST API。
本文使用 4 个最常用的 HTTP 动词:GET、POST、PUT 和 DELETE,对应数据库的 CRUD 操作。
比如管理的是一个游戏数据库 games.db
,其中包含名称(name)、价格(price) 和等级(rate)。
我们还将通过使用 Flask 创建的 API 公开几个操作:
- 获取所有游戏
- 创建一个新游戏
- 更新游戏
- 删除游戏
- 通过 ID 获取游戏
首先,我们将使用 Python 创建与数据库相关的 CRUD,然后我们将在 API 中使用 Flask 公开所有这些函数,编码格式为 JSON。
安装 SQLite
- 点击此处,下载你的系统对应的 SQLite 版本,本文以 Windows 为例:
- 下载后将这两个压缩包内的文件 解压到 C 盘的某个目录下:
- 并将该目录添加至环境变量:
- 查看 SQLite3 版本:
λ sqlite3 SQLite version 3.38.5 2022-05-06 15:25:27 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite>
创建数据库
使用 sqlite3 databaseName.db
命令来创建一个 SQLite 数据库,本文创建一个 games.db
数据库:
λ sqlite3 games.db SQLite version 3.38.5 2022-05-06 15:25:27 Enter ".help" for usage hints. sqlite> .databases main: C:\Program Files\cmder\games.db r/w
创建表
CREATE TABLE IF NOT EXISTS games( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, price REAL NOT NULL, rate INTEGER NOT NULL )
创建 db.py
我们上个步骤中看到数据库将被称为 games.db
。新建 Python 的 SQLite3 连接文件 db.py
:
import sqlite3 DATABASE_NAME = "games.db" # 获取数据库连接 def get_db(): conn = sqlite3.connect(DATABASE_NAME) return conn # 创建数据库表 def create_tables(): tables = [ """ CREATE TABLE IF NOT EXISTS games ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, price REAL NOT NULL, rate INTEGER NOT NULL ) """ ] db = get_db() cursor = db.cursor() for table in tables: cursor.execute(table)
中,此外,我们有两个功能:
- 其中之一是
get_db()
:用于获得数据库连接 - 另一个功能
create_tables()
:是当games
数据库表不存在的情况下创建数据库表。
现在我们已经定义了数据库,让我们看看使用 SQLite3 数据库的游戏的 CRUD 操作。