Menu
CoddyTech

什么是 API

本课属于 Coddy Django 学习旅程的“JSON API”单元。第 1 课,共 19 课。

到目前为止,你编写的视图会返回供人阅读的页面。API(应用程序编程接口)会为程序返回数据。手机应用、脚本或页面中的 JavaScript 会请求一个 URL,并获取数据,而不是 HTML。

这些数据通常是 JSON,一种看起来像 Python 字典和列表的文本,其中使用双引号,并在 Python 使用 True、False 和 None 的地方使用 true、false 和 null:

{"title": "Buy milk", "done": false, "due": null}

Django 使用 JsonResponse 将字典转换为 JSON 响应:

from django.http import JsonResponse


def hello(request):
    return JsonResponse({"message": "Hi", "ready": True})

它会写入 JSON,并将 Content-Type 标头设置为 application/json。标头是随响应发送的一行信息;这个标头会告诉程序它收到的是什么类型的数据。

challenge icon

挑战

简单

为任务跟踪器添加第一个端点,这是一个返回数字而不是页面的 URL。

  1. 在 tasks/views.py 中,从 django.http 导入 JsonResponse,并添加一个视图 stats,让它返回 JSON:total 表示任务总数,done 表示已完成的任务数。
  2. 在 tasks/urls.py 中,添加路由 "api/stats/",并将其命名为 stats。

点击“运行”:预览会打开 /api/stats/ 并显示 {"total": 3, "done": 1}。

亲手试试

from django.shortcuts import render

from .models import Task


def home(request):
    return render(request, "tasks/home.html", {"tasks": Task.objects.all()})

JSON API中的所有课

自己练习: Django 在线编辑器