网易云课堂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
]