简介
在本教程中,我们将解释如何使用 Flask 在 Ubuntu 服务器上创建你的第一个 REST API。
REST API(Representational State Transfer Application Programming Interfaces)对于构建可扩展的 Web 应用程序至关重要。Flask 是一个用于 Python 的微型 Web 框架,由于其简单性和灵活性,是创建 REST API 的绝佳选择。在本教程中,我们将逐步介绍在 Ubuntu 上使用 Flask 设置基本 REST API 的步骤。
本教程的目标是手把手教你如何在 Ubuntu 服务器上安装并配置 Flask,以创建你的第一个 REST API。
准备工作
服务器准备
必要前提:
- 一个充满求知欲的大脑。
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://rainyun.ivwv.site
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 输入
ssh root@你的服务器IP
例如ssh root@154.9.227.239
回车后,首次需要输入yes
,再次回车后即可登录服务器。
- 到此为止,我们的云服务器就远程连接上了。
安装和配置步骤
第一步:安装 Python 和 Pip
首先,更新你的系统软件包列表,并安装 Python 和 pip,Python 的包管理器。
sudo apt update
sudo apt install python3 python3-pip -y
通过检查 Python 和 pip 版本来验证安装:
python3 --version
pip3 --version
第二步:设置虚拟环境
为你的 Flask 项目使用虚拟环境是最佳实践,以便单独管理依赖项。创建并激活虚拟环境,如下所示:
sudo apt install python3-venv -y
python3 -m venv flask-api
source flask-api/bin/activate
你的终端提示符将更改,表明虚拟环境已激活。
第三步:安装 Flask
激活虚拟环境后,使用 pip 安装 Flask:
pip install Flask
第四步:创建一个基本的 Flask 应用程序
让我们从创建一个基本的 Flask 应用程序开始。在你的项目目录中,创建一个名为 app.py
的文件:
nano app.py
添加以下代码:
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/')
def home():
return "Welcome to the Flask REST API!"
if __name__ == '__main__':
app.run(debug=True)
这个简单的应用程序有一个路由(/
),它返回欢迎消息。
第五步:创建一个 REST API 端点
让我们通过添加 REST API 端点来扩展应用程序。我们将创建一个简单的 API 来管理用户列表。
替换 app.py
的内容,使用以下代码:
from flask import Flask, jsonify, request
app = Flask(__name__)
# In-memory database (a list of users)
users = [
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"},
{"id": 3, "name": "Charlie"}
]
# Get all users
@app.route('/users', methods=['GET'])
def get_users():
return jsonify(users)
# Get a single user by ID
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = next((u for u in users if u['id'] == user_id), None)
if user:
return jsonify(user)
return jsonify({"error": "User not found"}), 404
# Create a new user
@app.route('/users', methods=['POST'])
def create_user():
new_user = request.get_json()
new_user['id'] = len(users) + 1
users.append(new_user)
return jsonify(new_user), 201
# Update an existing user
@app.route('/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
user = next((u for u in users if u['id'] == user_id), None)
if user:
data = request.get_json()
user.update(data)
return jsonify(user)
return jsonify({"error": "User not found"}), 404
# Delete a user
@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
global users
users = [u for u in users if u['id'] != user_id]
return '', 204
if __name__ == '__main__':
app.run(debug=True)
第六步:测试 REST API
要测试 API,请运行 Flask 应用程序:
python app.py
Flask 将启动开发服务器,你可以使用 curl 或 Postman 等工具访问 API 端点。
输出:
* Serving Flask app 'app'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 117-628-815
API 请求示例:
获取所有用户:
curl http://127.0.0.1:5000/users
输出:
[
{
"id": 1,
"name": "Alice"
},
{
"id": 2,
"name": "Bob"
},
{
"id": 3,
"name": "Charlie"
}
]
按 ID 获取用户:
curl http://127.0.0.1:5000/users/1
输出:
{
"id": 1,
"name": "Alice"
}
创建新用户:
curl -X POST -H "Content-Type: application/json" -d '{"name": "Dave"}' http://127.0.0.1:5000/users
输出:
{
"id": 4,
"name": "Dave"
}
更新现有用户:
curl -X PUT -H "Content-Type: application/json" -d '{"name": "David"}' http://127.0.0.1:5000/users/4
输出:
{
"id": 4,
"name": "David"
}
删除用户:
curl -X DELETE http://127.0.0.1:5000/users/4
第七步:部署 Flask 应用程序
对于生产环境部署,你不应该使用 Flask 的内置服务器。相反,使用像 Gunicorn 这样的 WSGI 服务器。安装 Gunicorn:
pip install gunicorn
然后,使用 Gunicorn 运行你的 Flask 应用程序:
gunicorn --bind 0.0.0.0:8000 app:app
你现在可以远程访问 Flask API。在防火墙中添加 8000
端口并访问 API 端点。你还可以设置 Nginx 作为反向代理来处理客户端请求并将它们转发到 Gunicorn。
结尾
你已经在 Ubuntu 服务器上使用 Flask 创建了你的第一个 REST API。本教程介绍了设置 Python 虚拟环境、安装 Flask、创建 RESTful 端点以及测试 API 的过程。凭借 Flask 的灵活性,你可以轻松扩展此应用程序以包含更复杂的功能,并将其部署到生产环境中。
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site