在 Flask 里,一条路对应一个窗口。
from flask import Flask, request, jsonify, abort
app = Flask(__name__)
@app.get("/missions/<int:mission_id>")
def get_mission(mission_id: int):
verbose = request.args.get("verbose") == "1"
if mission_id <= 0:
abort(404)
payload = {
"id": mission_id,
"name": "夜巡北门",
"status": "ready",
"verbose": verbose,
}
return jsonify(payload)
@app.post("/missions")
def create_mission():
data = request.get_json(silent=True) or {}
if "name" not in data:
return {"error": "name is required"}, 400
return {"id": 101, "name": data["name"], "status": "created"}, 201这时候你应该建立起这张图:
HTTP 请求
│
▼
URL + Method 匹配
│
├── GET /missions/7
└── POST /missions
▼
对应 view function
│
├── 读 request.args
├── 读 request.json / form / headers / cookies
├── 调业务逻辑
└── return 响应
▼
Flask 转成 ResponseFlask 视图函数常见返回值非常灵活:
str:返回文本或 HTMLdict:返回 JSON(body, status_code):带状态码(body, status_code, headers):带头Response对象:完全自己控制
这就是 Flask 典型的“轻装备风格”:
你不需要先学很厚的抽象层,先会收请求、做判断、回响应,就已经能干活。