django-rest-swagger显示接口备注内容

Swagger是一個API開發者的工具框架,用於生成、描述、調用和可視化RESTful風格的Web服務。總體目標是使客戶端和文件系統服務器以同樣的速度來更新,方法,參數和模型緊密集成到服務器端的代碼中,允許API始終保持同步。

在使用 django-rest-framework 進行API開發,可以使用django-rest-swagger接入swagger自動生成接口文檔。

1. 安裝django-rest-swagger

pip install django-rest-swagger

2.配置settings.py

INSTALLED_APPS = [...‘rest_framework_swagger‘...
]REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication',),'DEFAULT_SCHEMA_CLASS':'rest_framework.schemas.AutoSchema','DEFAULT_PARSER_CLASSES': ['rest_framework.parsers.FormParser','rest_framework.parsers.MultiPartParser','rest_framework.parsers.JSONParser',]
}

3. views.py

該博文的項目是django-rest-framework中文站點的例子:https://q1mi.github.io/Django-REST-framework-documentation

當需要對接口的各種方法進行註釋時,直接在該類下添加註釋,如下所示。需要註意是的:註釋的方法名稱(如 get、post)要對應該類所含的方法名稱

class SnippetList(generics.ListCreateAPIView):"""get:Return all snippets.post:Create a new snippet instance."""queryset = Snippet.objects.all()serializer_class = SnippetSerializerpermission_classes = (permissions.IsAuthenticatedOrReadOnly,)def perform_create(self, serializer):serializer.save(owner=self.request.user)class SnippetDetail(generics.RetrieveUpdateDestroyAPIView):"""get:Return a snippet instance.put:Update a snippet instance.patch:Update a snippet instance.delete:Delete a snippet instance."""queryset = Snippet.objects.all()serializer_class = SnippetSerializerpermission_classes = (permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly,)class UserList(generics.ListAPIView):"""get:Return all users"""queryset = MyUser.objects.all()serializer_class = UserSerializerclass UserDetail(generics.RetrieveAPIView):"""get:Return a user instance"""queryset = MyUser.objects.all()serializer_class = UserSerializerclass SnippetHighlight(generics.GenericAPIView):"""get:Return a highlight instance"""queryset = Snippet.objects.all()renderer_classes = (renderers.StaticHTMLRenderer,)def get(self, request, *args, **kwargs):snippet = self.get_object()return Response(snippet.highlighted)

在使用ModelViewSet时,用get/post/patch/会存在问题

所以需要看其django-restful源码,找到方法名:

class QR_result_table_ViewSet(viewsets.ModelViewSet):"""retrieve: Update a snippet instance.update:Update a snippet instance.partial_update:partial_update a snippet instance.destroy:Delete a snippet instance."""queryset = QR_result_table.objects.all()serializer_class = QR_result_table_Serializerpagination_class = ListPaginationfilter_backends = (filters.DjangoFilterBackend,)filter_class = QR_result_table_Filter

 

3.配置urls.py

from rest_framework.schemas import get_schema_view
from rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPICodec
schema_view = get_schema_view(title=‘API‘, renderer_classes=[SwaggerUIRenderer, OpenAPICodec])urlpatterns = [...url(r‘docs/‘, schema_view, name=‘docs‘)...
]

 

運行manage.py後,瀏覽器訪問 http://127.0.0.1:8000/,可以看到以下內容:

技術分享圖片

訪問 http://127.0.0.1:8000/docs/,可以看到接口文檔如下:

技術分享圖片

 

點擊打開snippets,可以看到如下,每個方法後面都有你在views.py中添加的註釋

 

點擊打開get方法,如下

技術分享圖片

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/455798.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/455798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全和连接是IoT联网设备2大挑战

IoT正在推动500亿个联网设备在未来10年内从工业、零售、智能照明、智慧城市、汽车、农业、可穿戴设备、智能建筑、医疗市场涌现出来,ARM处理器部门市场营销总监Ian Smythe表示:“到2020年,消费电子和健康、智慧城市和物流、汽车和运输领域的I…

windows下部署免费ssl证书(letsencrypt)

随着网络的发展,网络安全也越来越重要,对于网站来说,从Http升级到https也是我们要做的首要事情。要实现https,首先我们需要申请一张SSL证书,这篇文章我主要介绍下边这几个方面: 1. SSL简单介绍 2. 免费Lete…

Django之URLconf路由

URLconf路由 一个干净优雅的URL方案是高质量Web应用程序中的一个重要细节。 Django可以让你设计URL,无论你想要什么,没有框架限制。 要为应用程序设计URL,您可以非正式地创建一个名为URLconf(URL配置)的Python模块。…

python中什么是关键字参数_如何使用python语言中函数的关键字参数的用法

一般情况下,在调用函数时,使用的是位置参数,即是按照参数的位置来传值;关键字参数是按照定义函数传入的参数名称来传值的。那么,关键字参数怎么使用?工具/原料 python pycharm 截图工具 WPS 方法/步骤 1 打…

HTML块级元素

在HTML5出现之前&#xff0c;人们一般把元素分为块级、内联和内联块元素。本文将详细介绍HTML块级元素h标题(Heading)元素有六个不同的级别&#xff0c;<h1>是最高级的&#xff0c;而<h6>则是最低的。一个标题元素能简要描述该节的主题从<h1>到<h6>&am…

【SSL】HTTPS配置全过程

服务器配置https协议 HTTPS&#xff0c;是以安全为目标的HTTP通道&#xff0c;简单讲是HTTP的安全版。即HTTP下加入SSL层&#xff0c;HTTPS的安全基础是SSL&#xff0c;因此加密的详细内容就需要SSL。 配置HTTPS就需要证书&#xff0c;关于证书方面不做过多解释&#xff0c;只…

iOS开发UI篇—懒载入

iOS开发UI篇—懒载入 1.懒载入基本 懒载入——也称为延迟载入&#xff0c;即在须要的时候才载入&#xff08;效率低&#xff0c;占用内存小&#xff09;。所谓懒载入&#xff0c;写的是其get方法. 注意&#xff1a;假设是懒载入的话则一定要注意先推断是否已经有了。假设没有那…

python之虚拟环境

Virtualenv(虚拟环境) VirtualEnv用于在一台机器上创建多个独立的Python虚拟运行环境&#xff0c;多个Python环境相互独立&#xff0c;互不影响.这样有很多优点,宝宝们要记住哦,比如: 在没有权限的情况下安装新套件 不同应用可以使用不同的套件版本 套件升级不影响其他应用 …

【解决】subprocess.CalledProcessError: Command ‘(‘lsb_release‘, ‘-a‘)‘ returned non-zero exit status 127

pip list 报错 Traceback (most recent call last):File "/home/sensetime/.pyenv/versions/3.6.5/bin/pip", line 11, in <module>sys.exit(main())File "/home/sensetime/.pyenv/versions/3.6.5/lib/python3.6/site-packages/pip/_internal/cli/main.p…

输出四位完全平方数_完全平方数中的规律

PS&#xff1a;很近之前自己收集的资料一个正整数如果是另一个整数的完全平方&#xff0c;那么我们就称这个数为完全平方数&#xff0c;也叫做平方数。如&#xff1a;0&#xff0c;1&#xff0c;4&#xff0c;9&#xff0c;16&#xff0c;25&#xff0c;36&#xff0c;49&#…

RTP格式图 NNEXB格式和RTP格式

Dove(12337127) 10:15:45我看JM代码里面有些疑问 看好多地方都出现了ANNEXB 时空互换(178316135) 10:16:08h264的2种码流编码格式Dove(12337127) 10:16:19我就不太理解是什么意思 刚才翻标准看见了 刚准备认真看看 Dove(12337127) 10:16:29annexb rtp 是么&#x…

第一阶段冲刺第二天

昨天把以前写过的Java普通用户类和订单类看了看&#xff0c;添加了一些变量 看了一些其他网页的代码 今天继续写关于收藏部分的代码 遇到的困难&#xff1a;还是没有什么头绪&#xff0c;做不到真正的实现转载于:https://www.cnblogs.com/lzxw/p/6800311.html

为企业提供本地销售人员的Universal Avenue获1000万美元A轮融资

为各类B2B企业提供本地销售人员的瑞典初创企业Universal Avenue近日获得了1000万美元的A轮融资。此轮融资由Eight Roads&#xff08;富达国际的投资机构&#xff09;领投&#xff0c;原有投资者Northzone和MOOR跟投&#xff0c;加上2015年获得的500万美元种子轮融资&#xff0c…

Python02期预科课程笔记索引

Python index day01 Python简介 Python发展历程 Python安装以及版本检测PyCharm的安装和破解 day02 Python注释及语句分类 Python命令方式和关键字Python中的变量Python的数据类型PyCharm中的快捷键 day03 Python数据类型转换Python中的运算和运算符Python流程控制 day0…

【Linux分享】Linux常用命令+教程分享

今天分享分为两部分 :) PART01 Linux常用命令分享/ PART02 关于BD面试经验分享 30mins Linux Command: PART 1 你本可以张口就来..... 本篇内容分享的宗旨: 拿下Linux面试 别面试的时候呆呆地说个ls了&#x1f691; 本篇分享详细地介绍了常用Linux指令的功能、语法、参…

万能无线鼠标对码软件_400元就能买ROG无线游戏鼠标,ROG影刃2无线版使用体验...

影刃2是ROG刚刚推出的一款新产品&#xff0c;定位入门游戏玩家。目前市面上定位入门游戏玩家的无线鼠标真不多&#xff0c;400块以内的预算想要选购一款合适的无线游戏鼠标&#xff0c;选择其实非常有限。 就ROG产品线而言&#xff0c;烈刃2的价格到了700块钱&#xff1b;罗技G…

[转帖]H.264 RTP payload 格式(有效载荷)

1. 网络抽象层单元类型 (NALU)NALU 头由一个字节组成, 它的语法如下:---------------|0|1|2|3|4|5|6|7|--------|F|NRI| Type |---------------F: 1 个比特.forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0.NRI: 2 个比特.nal_ref_idc. 取 00 ~ 11, 似乎指示这个 NAL…

wampserver 虚拟主机

转载&#xff1a;http://blog.csdn.net/knight_quan/article/details/51830683 1.背景&#xff1a; 在进行网站开发的时候&#xff0c;通常需要以http://localhost或者127.0.0.1等地址来访问本地环境的网站。不过随着开发项目的增多&#xff0c;需要每次先访问localhost然后再选…

PL/SQL的结构

2019独角兽企业重金招聘Python工程师标准>>> [DECLARE] --声明开始关键字/*这里是声明部分,包括PL/SQL中的变量、常量以及类型第等*/BEGIN --执行部分开始标志/*这里是执行部分,是整个PL/SQL块的主体部分,该部分必须存在,可以是SQL语句或流程控制语句等…

cf方框透视易语言代码怎么写_易语言真的那么不入流吗?

很多人鄙视易语言&#xff0c;为什么那么多人一提易语言&#xff0c;除了骂&#xff0c;还是骂&#xff0c;易语言很大错误吗&#xff1f;知乎上的大神们是这么说的一个语言的“入流”&#xff0c;和是不是英文关键字无关&#xff0c;而是和这种语言进入某一子行业的契机有关。…