1. 程式人生 > 實用技巧 >Django REST Framework簡單使用

Django REST Framework簡單使用

1、安裝各種元件

pip install django==2.1.5
pip install djangorestframework==3.8.2

2、建立Django專案

django-admin startproject my_drf
cd my_drf
python manage.py startapp app01

3、建立資料模型

app01/models.py

from django.db import models


# Create your models here.
class Group(models.Model):
    name = models.CharField(verbose_name="小組名稱", max_length=5)

    def __str__(self):
        return self.name


class Student(models.Model):
    name = models.CharField(verbose_name="學生名字", max_length=10)
    age = models.IntegerField(verbose_name="學生年齡")
    group = models.ForeignKey(to=Group, on_delete=models.CASCADE)

    def __str__(self):
        return self.name

4、建立序列化類

app01/serializers.py

from rest_framework.serializers import HyperlinkedModelSerializer

from .models import Group, Student


class GroupSerializers(HyperlinkedModelSerializer):
    class Meta:
        model = Group  # 要序列化的類
        fields = ('id', 'name')  # 序列化的欄位


class StudentSerializers(HyperlinkedModelSerializer):
    class Meta:
        model = Student  # 要序列化的類
        fields = ('id', 'name', 'age', 'group')  # 序列化的欄位

5、建立檢視類

app01/views.py

from rest_framework import viewsets
from .models import Group, Student
from .serializers import GroupSerializers, StudentSerializers


class StudentViewSet(viewsets.ModelViewSet):
    queryset = Student.objects.all()  # 指定要序列化的資料
    serializer_class = StudentSerializers  # 指定要使用的序列化類


class GroupViewSet(viewsets.ModelViewSet):
    queryset = Group.objects.all()  # 指定要序列化的資料
    serializer_class = GroupSerializers  # 指定要使用的序列化類

6、配置url

my_drf/urls.py

from django.contrib import admin
from django.urls import path, include
# 通過rest_framework自帶的路由配置建立路由
from rest_framework.routers import DefaultRouter

from app01 import views

router = DefaultRouter()
# 註冊路由
router.register(r'students', views.StudentViewSet)
router.register(r'groups', views.GroupViewSet)

urlpatterns = [
    path('admin/', admin.site.urls),
  	# 配置路由入口
    path('api/', include(router.urls)),
]

7、遷移資料庫

python manage.py makemigrations
python manage.py migrate

8、執行本地服務

python manage.py runserver

9、瀏覽器訪問

9.1 API入口

瀏覽器訪問:http://127.0.0.1:8000/api/

9.2 Students介面

瀏覽器訪問:http://127.0.0.1:8000/api/students/

9.2.1 對Students介面進行操作

9.2.1.1 增加學生

點選POST之後:

檢視Students所有資訊:

9.2.1.2 更新學生資訊
  • PUT是更新學生資訊(必須填寫完整的學生資訊)

點選PUT之後:

資訊中對應的"age"資訊已經更改了。

  • PATCH 部分更新,不需要傳遞所有資訊,只需要帶上“id”和要更新的資訊就可以

點選PATCH之後:

部分更新提交之後,下面的視窗中會把更新之後所有的資訊都載入進來。

9.2.1.3 刪除學生資訊

點選DELETE在彈出的對話方塊中確定之後,就可以把該學生的資訊刪除了:

在所有學生資訊列表中也檢視不到id為5的這個學生資訊:

9.3 Groups介面

瀏覽器訪問:http://127.0.0.1:8000/api/groups/