什么是 RESTful API
RESTful API 是一种基于 HTTP 协议的 Web 服务,它是一种轻量级架构,具有易于扩展、跨平台和可重用的特性。RESTful API 的核心思想是将资源映射到 URL,通过 HTTP 规范的请求方法(GET、POST、PUT、DELETE 等)对资源进行操作。
Django REST framework
Django REST framework 是一个基于 Django 框架的 Web API 开发工具包。它具有强大的 serializer(序列化器)、authentication(身份验证)、permission(权限控制)等功能,可以帮助我们快速地创建 RESTful API。
以下是如何在 Django 中创建 RESTful API 的步骤:
1. 安装 Django REST framework
可以使用 pip 安装 Django REST framework:
pip install djangorestframework
2. 创建 Django 应用程序
在 Django 中创建一个新的应用程序:
python manage.py startapp api
3. 配置 serializers
serializer 用于将 Django ORM 中的模型转化为 JSON 串,同时可以在接受到 JSON 串的时候将其转化回 Django ORM 中的模型。例如,我们定义一个模型:
-- -------------------- ---- ------- ---- --------- ------ ------ ----- ------------------- ----- - -------------------------------- ------ - -------------------------------- --------- - -------------------------------- -------- - ------------------ --- -------------- ------ ----------
则可以为该模型创建一个 serializer:
from rest_framework import serializers from .models import Book class BookSerializer(serializers.ModelSerializer): class Meta: model = Book fields = ('title', 'author', 'publisher', 'pub_date')
4. 创建视图函数
视图函数用于接收请求并返回相应的数据。在 Django REST framework 中,我们可以使用 APIView 类或者 ViewSet 类来定义视图函数。
使用 APIView 类
如果我们使用 APIView 类来定义视图函数,则需要自己处理请求和响应。例如,我们希望创建一个视图函数来获取所有书籍:
-- -------------------- ---- ------- ---- -------------------- ------ ------- ---- ----------------------- ------ -------- ---- ------- ------ ---- ---- ------------ ------ -------------- ----- ------------------ --- --------- -------- ------------- ----- - ------------------ ---------- - --------------------- ---------- ------ -------------------------
上述视图函数中,我们首先使用 Book.objects.all() 获取所有的书籍对象,然后使用 BookSerializer 将书籍对象序列化为 JSON 串,并使用 Response 将 JSON 串返回给客户端。
使用 ViewSet 类
如果我们使用 ViewSet 类来定义视图函数,则会自动帮我们处理请求和响应。例如,我们创建一个视图函数来获取所有书籍:
from rest_framework import viewsets from .models import Book from .serializers import BookSerializer class BookViewSet(viewsets.ModelViewSet): queryset = Book.objects.all() serializer_class = BookSerializer
上述视图函数中,我们首先使用 queryset 定义查询集,然后使用 serializer_class 定义 serializer。
5. 配置 URL 路由
在 Django REST framework 中,我们可以使用路由来映射 URL 和视图函数。例如,我们要将 /api/books/ 映射到 BookList 视图函数,可以使用以下代码:
-- -------------------- ---- ------- ---- ----------- ------ ----- ------- ---- -------------- ------ ------- ---- ------ ------ ----------- ------ - ----------------------- ------------------------- ------------ ----------- - - -------- ---------------------- -
6. 运行应用程序
在配置完路由后,就可以启动应用程序了:
python manage.py runserver
现在,我们就成功地创建了一个 RESTful API。
示例代码
以下是一个完整的 Django 应用程序,其中包括了完整的 serializers、视图函数和路由配置。
-- -------------------- ---- ------- - ------------------ ---- -------------- ------ ----------- ---- ------- ------ ---- ----- -------------------------------------------- ----- ----- ----- - ---- ------ - --------- --------- ------------ -----------
-- -------------------- ---- ------- - ------------ ---- -------------------- ------ ------- ---- ----------------------- ------ -------- ---- -------------- ------ -------- ---- ------- ------ ---- ---- ------------ ------ -------------- ----- ------------------ --- --------- -------- ------------- ----- - ------------------ ---------- - --------------------- ---------- ------ ------------------------- ----- ----------------------------------- -------- - ------------------ ---------------- - --------------
-- -------------------- ---- ------- - ----------- ---- ----------- ------ ----- ------- ---- -------------- ------ ------- ---- ------ ------ ------------ -------- ------ - ----------------------- ------------------------- ------------ ----------- - - -------------- -------------------- -------- ---------------------- -
-- -------------------- ---- ------- - ------------- ---- --------- ------ ------ ----- ------------------- ----- - -------------------------------- ------ - -------------------------------- --------- - -------------------------------- -------- - ------------------ --- -------------- ------ ----------
# config/urls.py from django.urls import path, include urlpatterns = [ path('api/', include('api.urls')), ]
总结
在本文中,我们介绍了如何在 Django 中创建 RESTful API。我们首先介绍了 RESTful API 的核心思想和 Django REST framework 的优势,然后详细介绍了创建 RESTful API 的步骤,包括 serializer、视图函数和路由配置,最后给出了一个完整的示例代码。希望本文对您有所启发,欢迎留言分享您的想法和经验。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ec0df4f6b2d6eab3659d45