所有文章 > 如何集成API > Flask 构建 REST API 完整指南:从入门到模块化开发
Flask 构建 REST API 完整指南:从入门到模块化开发

Flask 构建 REST API 完整指南:从入门到模块化开发

本文将为您详细讲解如何使用 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 的核心内容:

  1. 搭建虚拟环境和安装依赖
  2. 创建基本 "Hello World" API
  3. 构建 CRUD 功能
  4. 使用蓝图模块化项目
  5. 使用 Jinja 模板渲染动态 HTML
  6. 添加 CSS 美化页面

通过这些步骤,您可以构建一个功能完善、可扩展的 Flask REST API 应用程序。

原文链接: https://www.imaginarycloud.com/blog/flask-python

#你可能也喜欢这些API文章!

我们有何不同?

API服务商零注册

多API并行试用

数据驱动选型,提升决策效率

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

对比大模型API的内容创意新颖性、情感共鸣力、商业转化潜力

25个渠道
一键对比试用API 限时免费

#AI深度推理大模型API

对比大模型API的逻辑推理准确性、分析深度、可视化建议合理性

10个渠道
一键对比试用API 限时免费