安裝好所有的環(huán)境后,我們來寫一個drf的基本接口
1:準備好數(shù)據(jù)model
students下的models.py
from django.db import models
# Create your models here.
class Student(models.Model):
name = models.CharField(null=False, max_length=32, verbose_name='姓名')
sex = models.BooleanField(default=True, verbose_name='性別')
age = models.IntegerField(verbose_name='年齡')
class_num = models.CharField(max_length=5, verbose_name='班級編號')
description = models.TextField(max_length=100, verbose_name='個性簽名')
class Meta:
db_table = 'tb_student'
verbose_name = '學生'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
2:建立序列化器
students下的sersize.py
#序列化器
from rest_framework import serializers
from .models import Student
class StudentModelSerializers(serializers.ModelSerializer):
#學生信息序列化器
#1字段聲明
#2模型序列化器相關申明
class Meta:
model = Student
fields = '__all__'
#fields=['id','name','age']
#3驗證代碼 反序列化
#4操作數(shù)據(jù) ---反序列化
3:將序列化器加入視圖
students下的views.py
from rest_framework.viewsets import ModelViewSet
from .models import Student
from .sersizes import StudentModelSerializers
from django.shortcuts import render
# Create your views here.
class StudentViewSet(ModelViewSet):
queryset = Student.objects.all()
serializer_class = StudentModelSerializers
4:將組裝好的views視圖,放入路由urls中
students下的urls.py
from django.urls import path
from rest_framework.routers import DefaultRouter
from . import views
urlpatterns=[]
router = DefaultRouter() #可以處理視圖的路由器
router.register('student',views.StudentViewSet) #向路由器中注冊視圖集
urlpatterns += router.urls #將路由器中的所有路由信息追加到django的路由列表中
5:在總的路由中,加入連接
drfdemo下的urls.py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('student/',include('students.urls')),
path('sers/',include('sers.urls'))
]
7:最后上順序圖測試

image.png

image.png

image.png

image.png

image.png

image.png

image.png
大功告成~~~~
以上就是多個數(shù)據(jù)列表的獲取,下面測試單個數(shù)據(jù)的
步驟一樣,大同小異,但是要注意下面幾個地方

image.png

image.png
from django.shortcuts import render,HttpResponse
from django.http.response import JsonResponse
from django.views import View
from .serializers import StudentSerializer
from students.models import Student
# Create your views here.
class StudentView(View):
def get1(self,request):
#實例化序列器創(chuàng)建序列化對象
'''
:參數(shù)
instance 模型或者模型列表
data 進行反序列化階段中使用的數(shù)據(jù),數(shù)據(jù)來自客戶端的提交
context 當需要從視圖中轉(zhuǎn)發(fā)數(shù)據(jù)到序列化器時,可以使用
many 當instance參數(shù)為模型列表時候,則many的值必須是true
:param request:
:return:
'''
student_list = Student.objects.all()
print(student_list)
serializer = StudentSerializer(instance=student_list,many=True)
print(serializer.data)
return JsonResponse(serializer.data,safe=False)
def get(self,request):
student_one =Student.objects.get(pk=3)
print(student_one)
serializer = StudentSerializer(instance=student_one)
print(serializer.data)
return JsonResponse(serializer.data,safe=False)

image.png
效果圖

image.png