Django REST framework 入门
概述
Django REST framework (DRF) 是一个强大的工具,用于构建 Web API。它建立在 Django 之上,提供了丰富的功能和灵活性,使得开发 RESTful API 变得简单而高效。本教程将带你从零开始,逐步掌握 Django REST framework 的核心概念和使用方法。
安装和环境设置
安装 Django 和 Django REST framework
首先,确保你已经安装了 Python 和 Django。如果还没有安装 Django,可以使用以下命令进行安装:
pip install django
接下来,安装 Django REST framework:
pip install djangorestframework
创建 Django 项目
使用以下命令创建一个新的 Django 项目:
django-admin startproject myproject
进入项目目录:
cd myproject
创建一个新的 Django 应用:
python manage.py startapp myapp
配置 Django REST framework
在 myproject/settings.py 文件中,将 rest_framework 添加到 INSTALLED_APPS 列表中:
INSTALLED_APPS = [
...
'rest_framework',
'myapp',
]
序列化器
什么是序列化器?
序列化器(Serializer)是 Django REST framework 的核心组件之一。它负责将复杂的 Django 模型数据转换为 JSON 或其他格式,以便在 API 中传输。
创建序列化器
在 myapp 目录下创建一个名为 serializers.py 的文件,并添加以下代码:
from rest_framework import serializers
from .models import MyModel
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = '__all__'
定义模型
在 myapp/models.py 中定义一个简单的模型:
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=100)
description = models.TextField()
迁移数据库
运行以下命令创建数据库表:
python manage.py makemigrations
python manage.py migrate
视图集和路由器
什么是视图集?
视图集(ViewSet)是 Django REST framework 中用于处理 API 请求的类。它结合了多个视图(如 list、create、retrieve、update、destroy)到一个类中,简化了 API 的开发。
创建视图集
在 myapp/views.py 中创建一个视图集:
from rest_framework import viewsets
from .models import MyModel
from .serializers import MyModelSerializer
class MyModelViewSet(viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
配置路由
在 myapp/urls.py 中配置路由:
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import MyModelViewSet
router = DefaultRouter()
router.register(r'mymodels', MyModelViewSet)
urlpatterns = [
path('', include(router.urls)),
]
项目路由配置
在 myproject/urls.py 中包含 myapp 的路由:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('myapp.urls')),
]
运行服务器
启动 Django 开发服务器:
python manage.py runserver
访问 http://127.0.0.1:8000/api/mymodels/,你应该能够看到一个空的列表,因为还没有创建任何 MyModel 实例。
实践练习
创建数据
使用 Django 的 shell 创建一些 MyModel 实例:
python manage.py shell
在 shell 中输入以下代码:
from myapp.models import MyModel
MyModel.objects.create(name="Example 1", description="This is an example.")
MyModel.objects.create(name="Example 2", description="This is another example.")
查看 API 响应
刷新浏览器页面,你应该能够看到刚刚创建的 MyModel 实例。
总结
通过本教程,你已经学会了如何使用 Django REST framework 创建一个简单的 RESTful API。你了解了序列化器、视图集和路由器的使用方法,并进行了实际操作。接下来,你可以继续深入学习 Django REST framework 的其他高级功能,如认证、权限、API 版本控制等。
下一步
- 学习 Django REST framework 的认证和权限系统。
- 探索 API 版本控制和单元测试。
- 实践更复杂的 API 设计和实现。
希望本教程对你有所帮助,祝你在 Django REST framework 的学习和实践中取得成功!