GET 与 POST 路由

71.9 GET 与 POST 路由

@app.route('/api/users', methods=['GET']) 只接受 GET。

methods=['POST'] 处理 POST;同一 URL 不同方法可实现 REST 风格。

GET 列表

# ========================================
# 示例:GET 返回列表
# ========================================
from flask import Flask, jsonify

app = Flask(__name__)
students = [
    {'id': 1, 'name': '小明', 'score': 92},
    {'id': 2, 'name': '小红', 'score': 88},
]

@app.route('/api/students', methods=['GET'])
def list_students():
    return jsonify({'code': 0, 'data': students})

POST 添加

# ========================================
# 示例:POST 接收 JSON
# ========================================
from flask import Flask, jsonify, request

app = Flask(__name__)
students = []
next_id = 1

@app.route('/api/students', methods=['POST'])
def add_student():
    global next_id
    body = request.get_json(force=True)  # 解析 JSON 请求体
    if not body or 'name' not in body:
        return jsonify({'code': 400, 'message': '缺少 name'}), 400
    item = {'id': next_id, 'name': body['name'], 'score': body.get('score', 0)}
    next_id += 1
    students.append(item)
    return jsonify({'code': 0, 'data': item}), 201