1. 引言

Django REST framework(DRF)是一个强大的Web框架,用于构建API。它提供了丰富的功能,如序列化、认证、权限、视图集和URL路由。本文将带你深入了解Django REST framework,并通过一个实战项目来快速上手。

2. Django REST framework简介

Django REST framework是基于Django的,它可以帮助你快速构建RESTful API。DRF提供了以下主要功能:

  • 序列化:将Python对象转换为JSON格式。
  • 认证:提供多种认证方式,如Token、Session、OAuth等。
  • 权限:控制哪些用户可以访问哪些资源。
  • 视图集:将多个视图逻辑组合在一起。
  • URL路由:自动生成URL。

3. 安装Django REST framework

首先,确保你已经安装了Django。然后,使用pip安装Django REST framework:

pip install djangorestframework 

4. 创建Django项目

创建一个新的Django项目:

django-admin startproject myproject cd myproject 

5. 创建Django应用

在项目目录下创建一个新的应用:

python manage.py startapp myapp 

6. 配置Django REST framework

myproject/settings.py中,添加以下配置:

INSTALLED_APPS = [ ... 'rest_framework', 'myapp', ] 

7. 创建模型

myapp/models.py中,定义一个模型:

from django.db import models class MyModel(models.Model): name = models.CharField(max_length=100) description = models.TextField() 

8. 创建序列化器

myapp/serializers.py中,创建一个序列化器:

from rest_framework import serializers from .models import MyModel class MyModelSerializer(serializers.ModelSerializer): class Meta: model = MyModel fields = '__all__' 

9. 创建视图

myapp/views.py中,创建一个视图:

from rest_framework import generics from .models import MyModel from .serializers import MyModelSerializer class MyModelListCreateAPIView(generics.ListCreateAPIView): queryset = MyModel.objects.all() serializer_class = MyModelSerializer class MyModelRetrieveUpdateDestroyAPIView(generics.RetrieveUpdateDestroyAPIView): queryset = MyModel.objects.all() serializer_class = MyModelSerializer 

10. 配置URL路由

myapp/urls.py中,配置URL路由:

from django.urls import path from .views import MyModelListCreateAPIView, MyModelRetrieveUpdateDestroyAPIView urlpatterns = [ path('mymodels/', MyModelListCreateAPIView.as_view()), path('mymodels/<int:pk>/', MyModelRetrieveUpdateDestroyAPIView.as_view()), ] 

myproject/urls.py中,包含myapp/urls.py

from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('myapp.urls')), ] 

11. 运行Django开发服务器

python manage.py runserver 

现在,你可以通过访问http://127.0.0.1:8000/api/mymodels/来测试你的API。

12. 总结

通过以上步骤,你已经成功创建了一个使用Django REST framework的简单API。这是一个很好的起点,你可以在此基础上继续添加更多的功能和复杂性。希望这篇文章能帮助你快速上手Django REST framework。