首页 > 其他分享 >Django接入drf_yasg2 API接口文档-完整操作(包含错误处理)

Django接入drf_yasg2 API接口文档-完整操作(包含错误处理)

时间:2023-01-19 18:23:01浏览次数:37  
标签:view Django API yasg2 import 错误处理 drf schema

drf_yasg2的简介:

  drf-yasg是Django RestFramework的一个扩展,使⽤drf_yasg2下载⾃动⽣成的api⽂档的json或yaml⽂件配置项。

drf_yasg2的安装:

  pip install drf-yasg2

drf_yasg2的settings.py 注册:  

INSTALLED_APPS = [
......
'drf_yasg2', # 注册drf_yasg2 api接口drf_yasg2
]

drf_yasg2的主路由urls.py 注册: 

# ######drf_yasg2的注册(开始)######
from rest_framework import permissions
from drf_yasg2.views import get_schema_view
from drf_yasg2 import openapi

schema_view = get_schema_view(
openapi.Info(
title="Python API",
default_version='v1',
description="Welcome to the world of Tweet",
),
public=True,
permission_classes=(permissions.AllowAny,),
)
# ######drf_yasg2的注册(结束)######
urlpatterns = [
# drf_yasg2的url注册
re_path(r'^doc(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
# drf_yasg2导出
path('doc/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'), # drf_yasg2美化UI
path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'), # drf_yasg2
]

drf_yasg2的测试: 

  启动测试

  python manage.py runserver

drf_yasg2的错误处理: 

  drf-yasg2错误1:

    ImportError: Could not import 'drf_yasg2.generators.OpenAPISchemaGenerator' for API setting 'DEFAULT_GENERATOR_CLASS'. ImportError: Module "drf_yasg2.generators" does not define a "OpenAPISchemaGenerator" attribute/class.

  或者

  drf-yasg2错误2:
    AttributeError: module 'rest_framework.serializers' has no attribute 'NullBooleanField'
  原因:DRF 3.14兼容问题

  解决方法:降低DRF版本到3.13

  

 

 


 

标签:view,Django,API,yasg2,import,错误处理,drf,schema
From: https://www.cnblogs.com/beichengshiqiao/p/17061822.html

相关文章

  • KingbaseES数据库备份初始化错误处理
    KingbaseES使用sys_backup.sh脚本init初始化配置文件常见错误处理:sys_backup.sh脚本按照如下顺序寻找初始化配置文件:[kingbase@postgres~]$sh-xsys_backup.shinit......
  • Android 13(API 33)读写SD卡权限的调整适配
    在Android13前读取SDcard的内容只需要一个权限:android.permission.READ_EXTERNAL_STORAGE 但是在Android13以后这个权限被细化成了三个:publicstaticfi......
  • API
    Math://abs表示返回绝对值/*System.out.println(Math.abs(-88));//ceil表示向上取整,向正无穷方向获取最近的整数System.out.println(Math.ceil(1......
  • django-rest-swagger
    在日常工作中,程序员最苦恼的事情大概就是写文档了吧,虽然文档能够利于程序的传承,但是由于业务口径频繁变更,导致维护文档也变成了一件费时又费力的事情。因此,如果能够自动生......
  • kettle 创建资源库 Java api DatabaseRepository
    创建资源库前置mysql数据库test核心代码KettleEnvironment.init();DatabaseMetadatabaseMeta=newDatabaseMeta("test-db","MYSQL","Native",......
  • Django[三]配置文件settings.py
    一.配置文件详细说明参考:http://c.biancheng.net/view/7475.html二、根据自己的需要修改配置文件1.修改DATABASES连接mysqlDATABASES={'default':{'E......
  • HBase API
    1环境准备新建项目后在pom.xml中添加依赖:注意:会报错javax.el包不存在,是一个测试用的依赖,不影响使用<dependencies><dependency><groupId>org.apache.hbase......
  • Linux安装KingbaseES数据库 Unsupported major.minor version错误处理
    Linux系统安装V008R006C007B0012版本KingbaseES数据库报错:Unsupportedmajor.minorversion52.0系统版本:[root@vm-10-37-129-15~]#cat/etc/redhat-releaseRedHa......
  • django FilteredRelation 的用法
    有两大用处FilteredRelation类允许为查询集增加一个ON从句可以在多个join中语句直接引用变量fromdjango.db.modelsimportFilteredRelation,Qresult_1=Restaur......
  • django的 prefetch_related 只能 all() 可以用 filter ?
    直接说答案<=Django1.6只能在使用代码过滤somethings=Foo.objects.filter(author="author").prefetch_related("bar_set")forainsomethings:somebars=[p......