Django REST Framework簡單使用
阿新 • • 發佈:2020-07-01
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的這個學生資訊: