网易云课堂djangorestframework

简介

Django Rest framework 框架是一个用于构建Web API 的强大而又灵活的工具,简称为DRF。

特点

提供了定义序列化器serializer的方法,可以快速根据Django  ORM或者其它库自动序列化和反序列化

  • 提供了丰富的类视图、Mixin扩展类、简化视图的编写
  • 丰富的定制层级:函数视图,类视图、视图集合到自动生成API,满足各种需求
  • 多种身份认证和权限认证方式的支持
  • 内置了限流系统
  • 直观的API Web界面
  • 可扩展性,插件丰富

DjangoRestframework 入门

创建project和应用

project:wangyidrf

应用:app01

 

创建模型 

models.py

from django.db import models

# 定义一个小组和学生的模型
class Group(models.Model):
    name = models.CharField(verbose_name="小组名字",max_length=32)
    def __str__(self):
        return self.name

class Students(models.Model):
    name = models.CharField(verbose_name="学生名字",max_length=32)
    age = models.IntegerField(verbose_name="学生年龄")
    group = models.ForeignKey(to=Group,on_delete=models.CASCADE)

  

创建序列化器

新建Serializers.py文件

from .models import Group,Students
from rest_framework import  serializers

class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Group
        fields = ('id','name')

class StudentsSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Students
        fields = ('id','name','age','group')

 

创建视图函数

views.py

from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework import  viewsets
from .models import *
from .Serializers import StudentsSerializer,GroupSerializer

class StudentViewSet(viewsets.ModelViewSet):
    queryset = Students.objects.all()
    serializer_class = StudentsSerializer

class GroupViewSet(viewsets.ModelViewSet):
    queryset = Group.objects.all()
    serializer_class = GroupSerializer

创建路由

wangyidrf.urls.py

from django.urls import path,include
from app01 import  views
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r"students",views.StudentViewSet)
router.register(r"groups",views.GroupViewSet)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app01/api/', include(router.urls)), 生成的url是:http://127.0.0.1:8080/app01/api/students 和 http://127.0.0.1:8080/app01/api/groups
]

 

posted @ 2023-03-13 16:50  羊脂玉净瓶  阅读(12)  评论(0)    收藏  举报