使用 Django Rest Framework (DRF) 构建 RESTful API 是一个常见且强大的方法。以下是一个详细的指南,帮助你从头开始创建一个基本的 Django 项目,并使用 DRF 构建一个 RESTful API。
环境准备
-
安装 Django 和 Django Rest Framework:
pip install django djangorestframework
-
创建 Django 项目:
django-admin startproject myproject cd myproject
-
创建应用:
python manage.py startapp myapp
配置 Django 项目
- 添加应用到
INSTALLED_APPS
:
在myproject/settings.py
中,添加rest_framework
和你的应用myapp
:INSTALLED_APPS = [...'rest_framework','myapp', ]
创建模型
-
定义模型:
在myapp/models.py
中定义你的模型。例如,一个简单的用户模型:from django.db import modelsclass User(models.Model):name = models.CharField(max_length=100)email = models.EmailField(unique=True)def __str__(self):return self.name
-
迁移数据库:
python manage.py makemigrations python manage.py migrate
创建序列化器
- 定义序列化器:
在myapp/serializers.py
中定义你的序列化器:from rest_framework import serializers from .models import Userclass UserSerializer(serializers.ModelSerializer):class Meta:model = Userfields = ['id', 'name', 'email']
创建视图和 URL
-
定义视图:
在myapp/views.py
中定义你的视图:from rest_framework import generics from .models import User from .serializers import UserSerializerclass UserListCreate(generics.ListCreateAPIView):queryset = User.objects.all()serializer_class = UserSerializerclass UserRetrieveUpdateDestroy(generics.RetrieveUpdateDestroyAPIView):queryset = User.objects.all()serializer_class = UserSerializer
-
配置 URL:
在myapp/urls.py
中配置 URL 路由:from django.urls import path from .views import UserListCreate, UserRetrieveUpdateDestroyurlpatterns = [path('users/', UserListCreate.as_view(), name='user-list-create'),path('users/<int:pk>/', UserRetrieveUpdateDestroy.as_view(), name='user-detail'), ]
-
包括应用的 URL 到主 URL 配置:
在myproject/urls.py
中包括应用的 URL:from django.contrib import admin from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('api/', include('myapp.urls')), ]
运行服务器
-
启动开发服务器:
python manage.py runserver
-
测试 API:
你现在可以使用浏览器、Postman 或 curl 来测试你的 API。例如:- 获取用户列表:
GET http://127.0.0.1:8000/api/users/
- 创建新用户:
POST http://127.0.0.1:8000/api/users/
,并在请求体中提供用户数据(JSON 格式) - 获取单个用户:
GET http://127.0.0.1:8000/api/users/1/
- 更新用户:
PUT http://127.0.0.1:8000/api/users/1/
,并在请求体中提供更新的数据(JSON 格式) - 删除用户:
DELETE http://127.0.0.1:8000/api/users/1/
- 获取用户列表:
总结
通过上述步骤,你可以使用 Django 和 Django Rest Framework 构建一个简单但功能强大的 RESTful API。这是一个基本的例子,你可以根据需要添加更多的功能,例如认证、权限、分页等。Django Rest Framework 提供了许多内置功能和工具,帮助你快速构建和扩展你的 API。