本章将讲解如何通过Django框架进行后端开发。

1. 安装需要的包

1
pip install django djangorestframework django-cors-headers

2. 创建一个Django项目

1
2
django-admin startproject core .
python manage.py startapp api

3. 配置Django项目

core/settings.py中添加以下代码:

1
2
3
4
5
6
7
8
9
10
11
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework', # 添加DRF
'corsheaders', # 添加CORS
'api', # 添加我们的api应用
]

4. 在api/models.py中创建一个简单的模型:

1
2
3
4
5
6
7
8
9
from django.db import models

class Task(models.Model):
title = models.CharField(max_length=200)
completed = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)

def __str__(self):
return self.title

5. 在api/serializers.py中创建一个简单的序列化器:

1
2
3
4
5
6
7
from rest_framework import serializers
from .models import Task

class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = '__all__'

6. 在api/views.py中创建一个简单的视图:

1
2
3
4
5
6
7
from rest_framework import viewsets
from .models import Task
from .serializers import TaskSerializer

class TaskViewSet(viewsets.ModelViewSet):
queryset = Task.objects.all()
serializer_class = TaskSerializer

7. 在core/urls.py中添加以下代码配置:

1
2
3
4
5
6
7
8
9
10
11
12
from django.contrib import admin
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from api.views import TaskViewSet

router = DefaultRouter()
router.register(r'tasks', TaskViewSet)

urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include(router.urls)),
]

8. 进行数据迁移

1
2
python manage.py makemigrations
python manage.py migrate

9. 启动Django开发服务器

1
python manage.py runserver

如何访问?

在完成上述配置后,我们可以通过以下方式访问我们的API:

1. 访问管理页面

在浏览器中访问 http://127.0.0.1:8000/admin/ ,可以进入Django的管理界面。首先需要创建一个超级用户:

1
python manage.py createsuperuser

然后使用超级用户的账号和密码登录。

2. API端点使用说明

我们的API提供了以下端点:

  • 列表和创建任务:

    • URL: http://127.0.0.1:8000/api/tasks/
    • 方法:
      • GET:获取所有任务列表
      • POST:创建新任务
  • 获取、更新和删除单个任务:

    • URL: http://127.0.0.1:8000/api/tasks/{id}/
    • 方法:
      • GET:获取特定任务
      • PUT:更新整个任务
      • PATCH:部分更新任务
      • DELETE:删除任务

3. API使用示例

以下是使用curl命令或Postman等工具访问API的示例:

获取任务列表

1
curl http://127.0.0.1:8000/api/tasks/

创建新任务

1
2
3
curl -X POST http://127.0.0.1:8000/api/tasks/ \
-H "Content-Type: application/json" \
-d '{"title":"新任务","completed":false}'

获取单个任务

1
curl http://127.0.0.1:8000/api/tasks/1/

更新任务

1
2
3
curl -X PUT http://127.0.0.1:8000/api/tasks/1/ \
-H "Content-Type: application/json" \
-d '{"title":"更新的任务","completed":true}'

部分更新任务

1
2
3
curl -X PATCH http://127.0.0.1:8000/api/tasks/1/ \
-H "Content-Type: application/json" \
-d '{"completed":true}'

删除任务

1
curl -X DELETE http://127.0.0.1:8000/api/tasks/1/

4. API测试工具推荐

除了使用curl命令行工具,还可以使用以下工具来测试API:

  1. Postman:一个功能强大的API测试工具,提供图形界面,方便测试和调试API。

  2. Swagger UI:Django REST framework提供了内置的API文档界面,访问 http://127.0.0.1:8000/api/ 即可查看。

  3. HTTPie:一个用户友好的命令行HTTP客户端,安装方式:

1
pip install httpie

5. 注意事项

  1. 确保服务器正在运行(python manage.py runserver
  2. API返回的数据格式为JSON
  3. 创建和更新请求需要设置Content-Type头为application/json
  4. 所有的API端点都以/api/为前缀

本文章发布于 hjq.college,转载请注明出处。