django-rest-swagger

Swagger是一个API开发者的工具框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体目标是使客户端和文件系统服务器以同样的速度来更新,方法,参数和模型紧密集成到服务器端的代码中,允许API始终保持同步。

在使用 django-rest-framework 进行API开发,可以使用django-rest-swagger接入swagger自动生成接口文档。

1:安装django-rest-swagger

pip3 install django-rest-swagger
2:配置settings.py

INSTALLED_APPS = [
...

'rest_framework_swagger',

...
]
3:配置urls.py

from django.contrib import admin
from django.urls import path
from rest_framework_swagger.views import get_swagger_view
schema_view = get_swagger_view(title='API')

urlpatterns = [

path('admin/', admin.site.urls),
path('doc/', schema_view)
]

4:运行python3 manage.py runserver

5:浏览器访问 http://127.0.0.1:8000/doc/

此时出现报错信息:'AutoSchema' object has no attribute 'get_link'

 

这是因为使用模块的版本问题,我们需要在setting中添加设置:
REST_FRAMEWORK = {
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema'
}

6:再次刷新 http://127.0.0.1:8000/doc/

继续出现报错信息:'staticfiles' is not a registered tag library

 

这是因为在django4.x中关于 {% load staticfiles %} 部分做了修改 ,

解决方法是使用新语法:{% load static %}

找到报错的文件位置:

/.local/lib/python3.10/site-packages/rest_framework_swagger/templates/rest_framework_swagger/index.html

用编辑器,将第二行的{% load staticfiles %} 修改为:{% load static %}

7:再次刷新 http://127.0.0.1:8000/doc/,成功出现如下Swagger效果图:

 

posted @   侬侬发  阅读(297)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示