首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django Swagger文档库drf-spectacular

默认不包含UI资源,采用CDN方式引入网络外部资源,如果需要本地使用UI资源,可以按照一下方式引入: pipenv install drf-spectacular[sidecar] 配置settings.py...,以状态码作为键, 以上其中一项作为值(是最常用的,格式{200, None}) 1个字典,以状态码作为键,以media_type作为值 request:替换序列化,接受各种输入 Serializer...类或者实例 OpenApiTypes基本类型或者实例 PolymorphicProxySerializer类 1个字典,以media_type作为键,以上其中一项作为值 auth:用auth方法的显式列表替换发现的...自定义认证方式 在项目中我们使用了JWT作为登录认证,而drf-spectacular只对Session、Basic、Token做了适配 rest_framework.authentication.SessionAuthentication...,返回一个字典对象,字典的键可以在OpenAPI Specification v3.0.3 | Introduction, Definitions, & More网页访问 然后再看登录认证页面 因为我们在

2K20

每天 3 分钟,小闫带你学 Python(十六)

昨天的文章『每天 3 分钟,小闫带你学 Python(十五)』讲了字典的增删改查以及相关函数的操作。...3.修改元素的思路便是根据键查询到对应的值,然后再重新赋值,如下: 字典["键"] = "值" 4.查询可以通过键进行取值,也可以使用 get 方法。...5.字典的相关操作 keys、 values、 items 可以分别获取所有的键、值、键值对。 6.使用 len 方法可以获取字典中键值对的个数。 接下来进入今天的内容中。...('name', 'EthanYan'),('age', 18), 1.2.4 enumerate enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标...作业 1.自定义一个字典。 2.遍历字典中所有的键、值、键值对。 3.遍历输出字典的值与其索引。 ?

42320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    重点内容回顾-DRF

    重点内容回顾-DRF 1. on_delete on_delete是定义模型类中外键的一个选项。 on_delete选项指明的是主表删除数据的时候,对于外键引用的表数据如何处理。...,DRF框架会自动对异常进行处理,并且会把处理之后的错误信息返回给客户端。...page=&page_size= 视图关闭分页pagination_class = None 6.2异常处理 可以设置DRF框架的默认异常处理,也可以自定义异常处理函数。...def exception_handler(exc, context): # 先调用DRF框架的默认异常处理函数 response = drf_exception_handler(exc...可以进行DRF框架默认全局权限设置,也可对其进行修改,还可以指定某个视图的权限控制设置,甚至可以自定义权限控制类。权限和认证通常是一起使用的。 限流:注意,是对用户访问API接口频次进行限制。

    2.5K20

    【愚公系列】2022年04月 Python教学课程 77-DRF框架之异常

    文章目录 一、DRF框架自带异常 二、自定义异常 一、DRF框架自带异常 REST 框架的视图处理各种异常,并处理返回适当的错误响应。 处理的异常包括: 在 REST 框架中定义的异常。...PermissionDenied 在每种情况下,REST 框架都将返回具有适当状态代码和内容类型的响应。响应的正文将包含有关错误性质的任何其他详细信息。 大多数错误响应将在响应正文中包含一个键。...验证错误的处理方式略有不同,并且将在响应中包含字段名称作为键。如果验证错误不是特定于特定字段的,则它将使用“non_field_errors”键,或者为该设置设置设置的任何字符串值。...二、自定义异常 您可以通过创建一个处理程序函数来实现自定义异常处理,该函数将 API 视图中引发的异常转换为响应对象。这允许您控制 API 使用的错误响应样式。...该函数必须采用一对参数,第一个是要处理的异常,第二个是包含任何额外上下文(如当前正在处理的视图)的字典。异常处理程序函数应返回对象,如果无法处理异常,则应返回。

    1.1K40

    drf框架serializers中ModelSerializer类简化序列化和反序列化操作

    参与序列化和反序列的字段1','参与序列化和反序列的字段2') #fields='__all__' 为所有字段 # exclude = ('id', 'is_delete') # 刨除某些字段...# depth = 1 # 跨表自动深度(展示外键表的所有字段) 注意点 其中fields与exclude不能共存 depth不能控制显示字段,与外键相关的表会全部显示出来 二.利用模型类中的方法进行指导字典的生成...例如有两个模型A与B,他们的c字段有外键关联 modles.py class B(models.Model): name = models.CharField(max_length=60)...class A(models.Model): uid = models.ForeignKey(B,'id') @property #下面调用函数名的时候自动运行函数...框架自带的Response 注意点:save源码中我们可以看到instance有值调用updata方法,没有值调用create方法.所以修改必须加instance参数,传的参数基本上是修改之前的对象 有关删除

    1.5K20

    第 16 篇:别再手动管理接口文档了

    当 detial=True 时,drf-yasg 会将这个 action 对应的接口看做获取单个资源的接口,因此它认为分页是不需要的。但实际上我们对这个接口进行了定制,它返回的其实是评论列表。...随着为其添加更多信息,告诉 drf-yasg 这是一个返回资源列表的接口,问题也就顺便解决了。...二是 GET /posts/archive/dates/,这个接口的返回内容应该是一个日期列表,但是文档中显示的竟然是博客文章列表。drf-yasg 推断的响应类型是正确的,但内容不对。...由于这个接口返回的仅仅是一个简单的日期列表,并不涉及到序列化器,因此这里我们不使用指定 serializer_class 属性值的方式,而是使用 swagger_auto_schema 装饰器,直接告诉...responses 参数的值是一个字典,字典的键是 HTTP 响应码,值可以是一个序列化器,这样 drf-yasg 会拿这个序列化器去解析接口响应的参数;也可以是一个字符串,drf-yasg 会把字符串直接当做接口响应结果写入文档中

    1.8K20

    python技术面试题(九)

    在Redis中,键总是一个字符串对象,而值可以是字符串、列表、集合等对象,所以我们通常说的键为字符串键,表示的是这个键对应的值为字符串对象,我们说一个键为集合键时,表示的是这个键对应的值为集合对象。...hashtable 编码的集合对象使用 字典作为底层实现,字典的每个键都是一个字符串对象,这里的每个字符串对象就是一个集合中的元素,而字典的值则全部设置为 null。...字典的键保存元素的值,字典的值则保存元素的分值;跳跃表节点的 object 属性保存元素的成员,跳跃表节点的 score 属性保存元素的分值。...1.首先需要定义一个中间件的工厂函数,然后返回一个可以被调用的中间件。...其中中间件工厂函数需要接收一个可以调用的 get_response对象,返回的中间件也是一个可以被调用的对象,并且像视图一样接收一个request对象参数,返回一个Response对象。

    91140

    POSTMAN自动生成接口文档_swagger自动生成接口文档

    8000/api/schema/swagger-ui/,就会出现接口文档 我们可以看到图上有我们之前在settings.py中配置的TITLE和DESCRIPTION和VERSION,如果想自定义更多的设置...,请看文档 自定义接口内容信息 上面我们可以访问swagger接口文档,但是我们点开接口会发现没有任何内容信息 所以我们还需要在view视图中,使用装饰器@extend_schema来制定接口文档中的接口信息...,以状态码作为键, 以上其中一项作为值(是最常用的,格式{200, None}) 1个字典,以状态码作为键,以media_type作为值 request:替换序列化,接受各种输入 Serializer...类或者实例 OpenApiTypes基本类型或者实例 PolymorphicProxySerializer类 1个字典,以media_type作为键,以上其中一项作为值 auth:用auth方法的显式列表替换发现的...你必须提供一个兼容OpenAPI3的字典,该字典可以直接翻译成YAML。

    2.4K20

    Django&DRF重点内容大盘点

    1.3一个程序注意的点 1.3.1视图函数的定义 1)定义视图函数之后,要有一个request形参接收请求对象。...(heroinfo__hcomment__contains='八') 查英雄(多) 多类.objects.filter(外键属性__字段__条件=值) 例:heros...,并返回 2.将前端发送的数据反序列化为模型类对象,并保存到数据库中 2.4DRF框架 2.4.1作用:大大提高RestAPI接口开发效率 2.5序列化器Serializer 2.5.1功能 进行数据的序列化和反序列化...read_only=True) 2.采用指定的序列化器将关联对象进行序列化 hbook = BookInfoSerializer(label='图书') 3.将关联对象序列化为关联对象模型类_str_方法的返回值...btitle = serializers.CharField(label='标题',max_length=20,validators=[about_django]) 注意:此处的 about_django为我们自定义的校验函数

    5.9K20

    DRF框架中的英文单词

    Errorhandling错误处理,在Restful设计风格中,如果状态码是4xx,我们就应该返回错误的信息,通常来说是下面这个样子,但是不唯一: {error:""} 7...后端我们在设计模型类时自定义表名的时候用到了。 15. verbose/vɝ'bos/冗长的;啰嗦的,我们使用verbose_name指明一个易于理解和表述的对象名称。...我们用来表示路由的url的路由列表。但是pattern在计算机中通常用来表示模式。 19. Serialization/ˌsɪərɪrlaɪ'zeɪʃn/序列化,这个单词全球只有美式音标,统一的。...=[about_django]) 上面的about_Django是我们定义的补充验证函数名。...32. router/'rʊtɚ/路由器,我们指的可不是路由器了,它指的也不是视图函数,而是封装了视图函数和请求的url的映射关系的一个东西。 33.

    1.7K30

    超详细JSON教程!那些Python中JSON的使用方式都在这里

    对象内部由一系列键值对(key-value pair)组成,键值对之间用逗号分隔。 键(Key): 键是一个字符串,必须用双引号括起来。 键名不区分大小写,但通常按照惯例使用小写字母和下划线。...这些参数允许用户自定义解码过程,例如将JSON对象转换成特定的Python对象类型。 返回值 Python对象:通常是字典(对应于JSON对象)或列表(对应于JSON数组)。...如果Python对象包含无法直接转换成JSON的类型(如自定义对象),则可以使用default参数来提供一个自定义的序列化函数。...这些参数允许用户自定义解码过程,例如将JSON对象转换成特定的Python对象类型。 返回值 Python对象:通常是字典(对应于JSON对象)或列表(对应于JSON数组)。...返回值 None:json.dump() 不返回任何值,它将编码后的JSON数据直接写入到提供的文件对象中。

    1.3K00

    Python语言常用的49个基本概念及含义

    元组可以作为字典的“键”或者集合的元素,但是如果元组中包含列表、字典、集合或其他可变对象,就不能作为字典的“键”和集合的元素了。...字典(dict):内置类型,常用于表示特定的映射关系或对应关系,可变(不可哈希),元素形式为“键:值”,其中“键”必须是可哈希类型的数据且不重复。...在字符串前面加字母r或R表示原始字符串,加字母f或F表示对其中的占位符进行格式化,可以在一个字符串前面同时加字母r和f(不区分大小写)。...对于字典,可以使用“键”作下标,返回对应元素的“值”。...自定义函数(function):可以使用关键字def或lambda定义,实现对代码的封装和重复使用。 递归函数:如果一个函数的代码中又调用这个函数自己,这样的函数叫递归函数。

    2.8K21

    Python进阶40-drf框架(二)

    ,处理了返回异常现象,没处理返回None(后续就是服务器抛异常给前台) 4)自定义异常的目的就是解决drf没有处理的异常,让前台得到合理的异常信息返回,后台记录异常具体信息 """ ---- 源码分析...)response,有值代表drf已经处理了,None代表需要自己处理 # 自定义异常处理文件exception,在文件中书写exception_handler函数 from rest_framework.views...# 属性名随意,值由固定的命名规范方法提供: # get_属性名(self, 参与序列化的model对象) # 返回值就是自定义序列化属性的值...# 2)为需要额外校验的字段提供局部钩子函数,如果该字段不入库,且不参与全局钩子校验,可以将值取出校验 # # 3)为有联合关系的字段们提供全局钩子函数,如果某些字段不入库,可以将值取出校验...,如果该字段不入库,且不参与全局钩子校验,可以将值取出校验 3)为有联合关系的字段们提供全局钩子函数,如果某些字段不入库,可以将值取出校验 4)重写create方法,完成校验通过的数据入库工作

    2K20

    不会DRF?源码都分析透了确定不来看?

    post请求 注意:前后端分离csrf已经没有用了,查看一下源码 def as_view(cls, **initkwargs) return csrf_exempt(view) 我们发现返回值是...csrf_exempt(view)局部不验证,在Django总结到了不懂可以看一下:CSRF 跨站请求伪造 快速使用DRF写出接口 序列化和反序列化 API接口开发,最核心最常见的一个过程就是序列化,所谓序列化就是把数据转换格式...,序列化可以分两个阶段: 序列化:把我们语言识别的数据转换成指定的格式提交给别人(前端) 比如python中的字典,列表,对象等转json,xml,prop···· 反序列化:把别人提供的数据转换成我们所需的格式...drf快速使用 快速写5个接口 使用Django写五个接口得配5个路由,5个视图函数去处理,现在使用drf不需要了,如下: -查询所有---》get->http://127.0.0.1:8000...的源码是和上面Django中写视图类继承的View是一样的,这里的(APIView)的as_view只是进行了简单处理和去掉了csrf中间件校验,真实使用的还是View类中的as_view 3、然后还是闭包函数的返回值

    1.3K10

    Python中字典的详细用法

    字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组 #一、字典的使用 #在某些情况下,字典比列表更加适用: #1、表示一个游戏棋盘的状态,每个键都是由坐标值组成的元组...#创建一个字典,字典由多个键与其对应的值构建成的键-值对组成,中间由冒号隔开,项之间用逗号隔开,字典由大括号括起来。...空字典由{}组成 #字典中的键是唯一的,而值不唯一 phonebook={"Alice":"2431",'Beth':'9102','Cecil':'3258'} #1、dict函数,可以使用dict...函数,通过其他映射(比如其他字典)或者(键,值)对的序列建立字典 items=[('name','Gumby'),('age',42)] d=dict(items) print(d) print(d['...get,访问字典中不存在的项会出错,会返回none d={} print(d.get('name')) #还可以自定义"默认值" print(d.get('name',"N/A")) #如果键存在,get

    92110

    你真的会用Python中的JSON吗,超级详细的JSON常用方法讲解,一文搞定JSON!

    这些参数允许用户自定义解码过程,例如将JSON对象转换成特定的Python对象类型。 返回值 Python对象:通常是字典(对应于JSON对象)或列表(对应于JSON数组)。...这些参数允许用户自定义解码过程,例如将JSON对象转换成特定的Python对象类型。 返回值 Python对象:通常是字典(对应于JSON对象)或列表(对应于JSON数组)。...返回值 None:json.dump() 不返回任何值,它将编码后的JSON数据直接写入到提供的文件对象中。...这个函数应该接受一个有序对列表作为参数,并返回另一个对象(例如,一个有序字典)。 方法 .decode(s, _w=None): 解码JSON字符串s。_w是一个内部参数,通常不需要用户设置。...默认值为None,表示不添加任何缩进。 separators:一个(item_separator, key_separator)元组,用于指定项之间和键-值对之间的分隔符。

    20710

    DRF系列总结二:脚手架搭建

    ,在Django基础工程的基础上,安装DRF并进行配置:比如统一接口返回格式、统一异常处理等,并在后面的文章中,不断完善出一套DRF脚手架,以降低后面的开发同学的趟坑成本。...===================================== REST_FRAMEWORK = { } DRF优先从django配置文件中的REST_FRAMEWORK字典中获取配置信息...,我们这里提供了自定义分页类component.drf.pagination.PageNumberPagination供大家参考。...": 0 } DRF的接口一般会直接返回创建的数据或者数据列表,如图所示: [DRF接口返回一] [DRF接口返回二] 于是,结合开发规范对接口的要求,我们需要对DRF的返回格式进行统一处理 首先,我们简单看下...) 我们的接口基本上都是通过继承ModelViewSet提供的,通过阅读代码和文档,我们发现ModelViewSet的父类APIView中的finalize_response函数恰好是DRF定义的response

    3.7K60

    DRF框架学习(二)

    views.BookInfoViewSet, name='books') # 向路由器中注册视图集 urlpatterns += router.urls # 将路由器中的所以路由信息追到到django的路由列表中...) hbook = BookInfoSerializer(label='图书') 3)将关联对象序列化为关联对象模型类_str_方法的返回值 hbook = serializers.StringRelatedField...raise serializers.ValidationError("图书不是关于Django的") return value 然后在字段中添加validators选项参数,写一个列表,将定义的校验函数名放进去...对字段进行验证,如 def validate_btitle(self,value): if 'django' not in value.lower(): raise...create需要传一个参数validated_data,它是校验之后的数据(数据类型是字典)。**validated_data是对这个字典进行拆包。

    4.1K30

    前端代码规范七大原则_织梦自定义表单源码

    所以get_rate方法返回的是THROTTLE_RATES中key为scope所对应的值,scope属性我们可以自定义的时候随意设置,如果我们自定义scope为user,那么get_rate方法返回的就是...:请求的次数 duration:取period中的下标为0的,然后从字典中取出对应的key的值,比如min,第一个开头字母为m,最后从字典中取m的值,就是60 所以示例3/min代表的就是1分钟可以访问...True,代表允许请求,如果key也为None则返回True,代表允许请求,如果rate和key都有值,history就从缓存中获取key所对应的列表,now代表当前时间。...自定义一个继承SimpleRateThrottle类的频率类 设置一个scope类属性,属性值为任意见名知意的字符串 在settings配置文件中,配置drf的DEFAULT_THROTTLE_RATES...,格式为{scope对应的字符串值:’次数/时间’} 在自定义频率类中重写get_cache_key方法 限制的对象返回与限制信息有关的字符串 不限制的对象返回None 需求:用户访问短信验证码

    33510
    领券