Flask Academy · 课时

读取单条与多条记录的端点

返回单个项目或一个集合

第 2 / 4 课13 个步骤

读取单条与多条记录的端点 是 CoddyKit 上的免费 Flask Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Flask Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Flask Academy 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

Two Shapes of Read

A REST resource needs two read endpoints: one that returns a single item by id, and one that returns the whole collection. 📚

List Route for Many

The collection lives at a plain path like /users. A GET there should answer with every matching record.

@app.route("/users")
def list_users():
    ...

Load Them All

Fetch the full set with query.all(), which gives you a Python list of model instances to serialize.

users = User.query.all()

Serialize the Collection

jsonify cannot dump model objects directly, so map each row to a dict first, then return the list.

return jsonify([{"id": u.id, "name": u.name} for u in users])

Detail Route for One

A single item lives at /users/<id>. The id in the path tells you exactly which row to load.

@app.route("/users/<int:user_id>")
def get_user(user_id):
    ...

Fetch That One Row

Use get() with the path id to pull the matching record straight from the database.

user = User.query.get(user_id)

Return the Single Item

Wrap the found row in a dict and jsonify it. Your client gets one clean JSON object back.

return jsonify({"id": user.id, "name": user.name})

Handle the Missing Case

If get returns None, the id was wrong, so reply with a 404 instead of crashing on a None value.

if user is None:
    return jsonify(error="not found"), 404

Skip the Check with get_or_404

Flask-SQLAlchemy's get_or_404() fetches by id or aborts with 404 automatically, trimming the boilerplate from detail views.

user = User.query.get_or_404(user_id)

Paginate Long Lists

Returning thousands of rows is slow. Use paginate() to slice the collection into pages your client can request one at a time.

page = User.query.paginate(page=1, per_page=20)

List Returns an Array

Keep shapes predictable: the collection route returns a JSON array, while the detail route returns a single object.

Quick Check

A request hits /users/42 but no such row exists. What should the endpoint do?

Recap: Reading Records

You built a list route returning an array and a detail route returning one item, with 404 for missing rows. Reads done right! 🎉

免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「读取单条与多条记录的端点」课时是免费的吗?

是的 — 「读取单条与多条记录的端点」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Flask Academy 课程的其余内容,请升级到 CoddyKit PRO。 Flask Academy 课程共包含 4 节课。

「读取单条与多条记录的端点」这节课中我会学到什么?

返回单个项目或一个集合 你通过在浏览器中直接运行的动手代码来练习 Flask Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Flask Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Flask Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「读取单条与多条记录的端点」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Flask Academy 课中编写并运行代码吗?

能。每节 Flask Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 创建记录并提交会话
  2. 读取单条与多条记录的端点
  3. 安全地更新现有记录
  4. 删除记录并处理缺失行
← 返回 Flask Academy