Flask 构建 REST API 完整指南:从入门到模块化开发
作者:API传播员 · 2025-09-14 · 阅读时间:4分钟
文章目录
本文将为您详细讲解如何使用 Flask 框架创建 REST API,从搭建开发环境到实现 CRUD 功能,并演示如何使用 蓝图 和 Jinja 模板 扩展应用程序。
一、技术要求与项目初始化
首先,创建项目目录并进入:
mkdir flask_demo
cd flask_demo
然后创建虚拟环境:
python -m venv .venv
激活虚拟环境:
-
Windows:
.venv\Scripts\activate -
macOS/Linux:
source .venv/bin/activate
退出虚拟环境:
deactivate
二、设置 Flask 开发环境
创建 requirements.txt 文件,添加 Flask 依赖:
Flask==2.3.3
安装依赖:
pip install -r requirements.txt
至此,开发环境已准备就绪。
三、创建第一个 "Hello World" API
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/basic_api/hello_world', methods=['GET'])
def hello_world():
return jsonify(message="Hello, World!")
if __name__ == '__main__':
app.run(debug=True)
访问:
http://localhost:5000/basic_api/hello_world
输出:
{ "message": "Hello, World!" }
四、构建 CRUD REST API
实现一个项目实体管理 API,端点如下:
- GET /entities – 获取实体列表
- POST /entities – 创建实体
- GET /entities/ < id > – 获取指定实体
- PUT /entities/ < id > – 更新实体
- DELETE /entities/ < id > – 删除实体
示例代码:
from flask import Flask, request, jsonify
app = Flask(__name__)
entities = []
@app.route('/entities', methods=['GET', 'POST'])
def manage_entities():
if request.method == 'GET':
return jsonify(entities)
elif request.method == 'POST':
entity = request.json
entities.append(entity)
return jsonify(entity), 201
@app.route('/entities/ < int:entity_id > ', methods=['GET', 'PUT', 'DELETE'])
def manage_entity(entity_id):
if request.method == 'GET':
return jsonify(entities[entity_id])
elif request.method == 'PUT':
entities[entity_id] = request.json
return jsonify(entities[entity_id])
elif request.method == 'DELETE':
entities.pop(entity_id)
return '', 204
五、使用蓝图优化项目结构
蓝图(Blueprints)有助于模块化和扩展应用程序。
1. 创建蓝图
创建目录结构:
blueprints/
└─ basic_endpoints/
└─ __init__.py
内容示例:
from flask import Blueprint, jsonify
basic_endpoints = Blueprint('basic_endpoints', __name__)
@basic_endpoints.route('/basic_api/hello_world', methods=['GET'])
def hello_world():
return jsonify(message="Hello, World!")
2. 注册蓝图
from flask import Flask
from blueprints.basic_endpoints import basic_endpoints
app = Flask(__name__)
app.register_blueprint(basic_endpoints)
if __name__ == '__main__':
app.run(debug=True)
六、使用 Jinja 模板渲染动态内容
创建 templates/example.html 文件:
< !DOCTYPE html >
< html lang="en" >
< head >
< meta charset="UTF-8" >
< title > Example < /title >
< /head >
< body >
< p > {{ top }} < /p >
< p > {{ bottom }} < /p >
< /body >
< /html >
蓝图示例:
from flask import Blueprint, render_template, request
template_blueprint = Blueprint('template_blueprint', __name__)
@template_blueprint.route('/jinja_template', methods=['GET'])
def jinja_template():
top = request.args.get('top', 'Default Top Text')
bottom = request.args.get('bottom', 'Default Bottom Text')
return render_template('example.html', top=top, bottom=bottom)
访问:
http://localhost:5000/jinja_template?top=Hello&bottom=World
七、添加 CSS 样式
创建 static/example.css 文件:
body {
font-family: Arial, sans-serif;
color: #333;
}
在 HTML 中引用:
< link rel="stylesheet" href="{{ url_for('static', filename='example.css') }}" >
刷新页面即可应用样式。
八、总结
本文涵盖了 Flask REST API 的核心内容:
- 搭建虚拟环境和安装依赖
- 创建基本 "Hello World" API
- 构建 CRUD 功能
- 使用蓝图模块化项目
- 使用 Jinja 模板渲染动态 HTML
- 添加 CSS 美化页面
通过这些步骤,您可以构建一个功能完善、可扩展的 Flask REST API 应用程序。
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 将 GraphQL 单体迁移至 Apollo Federation
- 声音即身份:声纹识别API如何改变身份验证的未来
- 国内API KEY 密钥免费的AI平台及其使用指南
- 全面解读:REST API与OpenAPI的区别、应用及最佳实践指南
- 5款强大且高效的API漏洞扫描工具推荐
- Twitter (x) API 介绍:在线使用和集成指南
- DeepSeek+ima:打造高效个人知识库,提升学习与工作效率
- API设计模式:粒度细化 vs 粒度粗化的利弊分析
- 如何实现Mock API以进行API测试 | Zuplo博客
- 解读 TaskMatrix.AI
- API协议设计的10种技术
- ComfyUI API是什么:深入探索ComfyUI的API接口与应用