django-drf自动化生成API文档

django-drf自动化生成API文档_第1张图片

首先需要安装

 pip install drf-yasg -i https://pypi.tuna.tsinghua.edu.cn/simple

在总urls中添加

from drf_yasg.views import get_schema_view
from drf_yasg import openapi

schema_view = get_schema_view(
    openapi.Info(
        title="学生信息管理系统V5.0后台API接口文档平台",  # 必传
        default_version='v1',  # 必传
        description="这是一个接口文档",
        terms_of_service="",
        contact=openapi.Contact(email="[email protected]"),
        license=openapi.License(name="BSD License"),
    ),
    public=True,
    # permission_classes=(permissions.AllowAny,),   # 权限类py
)
urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/', include('studentweb.urls')),
    path('docs/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),

]

setting中

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'django_filters',  # drf的筛选
    'drf_yasg',
    'studentweb',
]

django-drf自动化生成API文档_第2张图片

可以在views视图中添加

from rest_framework.viewsets import ModelViewSet

from studentweb.models import *
from studentweb.paginations import MyPageNumberPagination
from studentweb.serializer import *
from django_filters.rest_framework import DjangoFilterBackend
from studentweb.filter import FacultyFilter, MajorFilter, StudentFilter
from rest_framework.filters import SearchFilter # 导入搜索的后台功能


class FacultyViewSet(ModelViewSet):
    """
           create:
           创建院系信息
           retrieve:
           获取院系信息详情数据
           update:
           完整更新院系信息
           partial_update:
           部分更新院系信息
           destroy:
           删除院系信息
           list:
           获取所有院系信息

           """
    queryset = Faculty.objects.all()
    serializer_class = FacultySerialzer

    # 指定筛选的类
    filter_class = FacultyFilter


class MajorViewSet(ModelViewSet):
    """
        create:
        创建专业信息
        retrieve:
        获取专业信息详情数据
        update:
        完整更新专业信息
        partial_update:
        部分更新专业信息
        destroy:
        删除专业信息
        list:
        获取所有专业信息

        """
    queryset = Major.objects.all()
    serializer_class = MajorSerialzer

    # 指定筛选的类
    filter_class = MajorFilter


class StudentViewSet(ModelViewSet):
    """
     create:
     创建学生信息
     retrieve:
     获取学生信息详情数据
     update:
     完整更新学生信息
     partial_update:
     部分更新学生信息
     destroy:
     删除学生信息
     list:
     获取所有学生信息

     """
    queryset = Student.objects.all()
    serializer_class = StudentSerialzer
    pagination_class = MyPageNumberPagination
    # 指定筛选的类
    filter_class = StudentFilter

    # 设置查找功能
    search_fields = ('sno','name','mobile')

django-drf自动化生成API文档_第3张图片

你可能感兴趣的:(Django,自动化,django,python)