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

Django3.0新鲜出炉!全面解读新特性,ASGI真香实锤,不来了解一下?

模型字段选择的枚举 在之前的Django版本,我们在model的field字段需要枚举的时候通常需要这么做 from django.utils.translation import gettext_lazy...,需要我们手动去指定,而在Django 3.0,自定义枚举类型TextChoices,IntegerChoices和Choices现在作为一个的方式来定义Field.choices。...为文本和整数字段提供了类型TextChoices 和IntegerChoices类型。在 Choices类允许定义为其他具体的数据类型兼容的枚举。...PBKDF2密码哈希器的默认迭代计数150,000增加到180,000。 表格 表单集可以通过can_order设置ordering_widget属性或覆盖来控制在订购表单时使用的小部件。...这些设置的默认值和之前的版本相同。 添加了对乌兹别克语的支持和翻译。

2.6K10

Django Swagger文档库drf-spectacular

因此我选择使用Swagger文档,之前使用过drf-yasg,但是drf-yasg现在还不支持OpenAPI 3.0,而在drf-yasg的官方文档为我们推荐了另一个库:drf-spectacular...默认不包含UI资源,采用CDN方式引入网络外部资源,如果需要本地使用UI资源,可以按照一下方式引入: pipenv install drf-spectacular[sidecar] 配置settings.py...:替换发现的文档字符串 summary:一个可选的短的总结描述 deprecated:将操作标记为已弃用 tags:覆盖默认标记列表 exclude:设置为Trueschema中排除操作 operation...methods:检查extend_schema特殊的方法,默认匹配所有 versions:检查extend_schema特殊的API版本,默认匹配所有 example:将请求/响应示例附加到操作...,因此页面就会显示两种认证方式 BUG 目前使用存在一个BUG,就是对于read_only字段,按照我们的理解就是在查询请求是返回给客户端,而创建时在请求体不需要包含。

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

DRF框架学习(四)

DRF框架学习(四) 1.视图集对象的action属性 作用: 获取现在要执行的是哪一种操作。 self.action:是字符串类型,目的是获取所有执行的操作。...DRF框架的默认权限控制如下: 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.AllowAny', # 允许所有人 ) 可以在配置文件设置权限管理类...6.1 使用 DRF框架默认没有进行全局限流设置,但是提供了配置项,我们可以在配置文件,使用 DEFAULT_THROTTLE_CLASSES 和 DEFAULT_THROTTLE_RATES进行全局配置...我们可以在配置文件设置全局的分页方式,如: REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': '', 'PAGE_SIZE'...NotAcceptable 要获取的数据格式不支持 Throttled 超过限流次数 ValidationError 校验失败 10.1异常处理设置 DRF框架的默认异常处理设置如下: REST_FRAMEWORK

2.7K40

第 11 篇:基于 drf-haystack 的文章搜索接口

既然要使用第三方库,第一步当然是安装它,进入项目根目录,运行: $ pipenv install drf-haystack 由于需要使用到搜索功能,因此需要启动 Elasticsearch 服务,最简单的方式就是使用项目中编排的...自定义序列化字段其实非常的简单,基本流程分两步走: drf 官方提供的序列化字段找一个数据类型最为接近的作为父类。 重写 to_representation 方法,加入自己的序列化逻辑。...因为 title、body 均为字符型,因此选择父类序列化字段为 CharField,定义一个 HighlightedCharField 字段如下: from .utils import Highlighter...对象,这个对象就是视图中的 HTTP 请求对象,但是因为 django request 对象无法像 flask 那样全局获取,因此 drf 在视图中将其保存在了序列化器和序列化字段的 context...属性以便在视图外访问;获取 request 对象的目的是希望获取查询的关键字,query_params 属性是一个类字典对象,用于记录来自 URL 的查询参数,例如我们之前测试查询功能时调用的 URL

1.6K20

【Django】在大型项目中的django的性能模型字段primary_key

模型字段 序列本身由正好两个项目的迭代项组成(例如,[(A,B),(A,C)…]),作为该字段选择。如果给出了选择,它们将通过模型验证来执行。...默认表单部分将是包含这些选项的选择框,而不是标准文本字段。 每个元组的第一个元素是要在模型上设置的实际值,第二个元素是人类可读的名称。...,然后引用它,但在模型类定义选择和每个选择的名称可以在使用它的类中保留所有这些信息,并帮助引用这些选择(例如,Student.SOPHOMORE将在导入学生模型的任何位置工作)。...如果没有为模型的任何字段指定主键_Key=True,Django将自动添加一个字段来保存主键,因此不需要在任何字段上设置主键_Key=True,除非想覆盖默认主键行为。...此字段默认表单部分是TimeInput。一些JavaScript快捷方式已添加到管理

2K20

DRF框架学习(二)

3.3, 3.4, 3.5, 3.6) Django (1.10, 1.11, 2.0) DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。...,__all__代表所有 fields = '__all__' model 指明该序列化器处理的数据字段模型类BookInfo参考生成 fields 指明该序列化器包含模型类的哪些字段....字段类型(选项参数) 4.2通用选项参数 参数名称 解释 required 默认为True,意思是这个字段在反序列化时必须输入 read_only、write_only 默认是False,如果是仅用于反序列化输出时使用...default 我们在使用序列化和反序列化时使用的默认值 allow_null 表明该字段是否允许传入None,默认False help_text、label_text 可以理解为注释,在web直观显示的时候有一个显示信息...有三种方式

4.1K30

django和drf_类的方法可以序列化么

字段的参数都继承自Field类,参数如下 def __init__(self, read_only=False, write_only=False, required=None...比如我们的账号密码,只允许用户提交,后端是不返回密码给前台的 required:当为True时表示这个字段必填,不填状态码会返回400 default:默认值,没什么好说的 allow_null:当为True...时,允许该字段的值为空   之后我们又定义了局部钩子,校验特殊的字段,比如需求规定,用户的性别只能输入男和女,此时你就可以定义一个钩子,当然drf自动帮我们做了一些校验,比如需要的字段是int类型,你输入.../student/,在body中选择json格式,输入如下数据 { "name": "aaaa", "sex": 2, "age": 18 } 运行结果如下: { "id...] } 测试默认的必填项不填 输入测试数据 { "name": "kkk" } 返回结果如下: { "sex": [ "该字段是必填项。"

1.1K30

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

接下来我们就一个个地来解决上面的问题,只需要稍加改变一下 drf-yasg 的默认行为,就能够生成我们预期的文档内容。...其中 toc 和 body_html 因为不是 Post 定义的字段,所以 drf-yasg 无法知道关于这两个字段的说明。 drf-yasg 是如何知道这个接口会返回哪些响应参数的呢?...原理是 drf-yasg 会尝试去解析接口对应的序列化器(Serializer),序列化器中提取出对应的请求和响应字段(如果序列化器找不到,它会进一步去序列化器关联的模型找),因此我们就可以给序列化器定义的字段添加说明信息...) 这样两个字段的含义就非常清晰了,效果如下: 其它一些没有说明信息的字段都可以根据这种方式来添加,只需要找到文档的参数在代码对应的来源字段就可以了。...先来看 GET /posts/archive/dates/,它对应的 action 是 list_archive_dates,由于 action 默认它所在的视图集中继承一些属性,而 drf-yasg

1.8K20

django rest_framework 分页

简介 本文主要介绍在drf框架如何对查询的数据进行分页,在drf框架中有提供该基础功能的使用案例和文档,详情参考drf-pagination-官网文档 (opens new window) 内置分页方式...drf框架默认提供几种分页方式,并封装成了模块提供给开发者调用,主要是以下几种: PageNumberPagination,主要是提供page​和page_size​进行分页。...自定义分页 框架本身提供了分类的模块,但在实际工作并不适用,所以我们可以通过继承的方式对内置的分页模块的部分属性进行覆盖,符合自身业务。...page_size_query_param:前端请求分页数量的字段 上面是部分常用的字段,如果有特殊业务可以看源码再进行修改。...,在REST_FRAMEWORK​设置DEFAULT_PAGINATION_CLASS​,该key是指定分页模式使用哪个分页类,而这里使用的是drf框架内置的分页类LimitOffsetPagination

58110

DRF进阶之DRF视图和常用功能

DRF视图和常用功能 DRF视图 DRF视图类介绍 在DRF框架中提供了众多的通用视图基类与扩展类,简化视图的编写。...View:Django默认的视图基类,负责将视图连接到URL,HTTP请求方法的基本调度,之前写类视图一般都用这个。...常用功能 主流认证方式 Session认证 HTTP是一个无状态的协议,每次访问都是新的,早期主要用于浏览网页,随着时代发展,像在线购物网站的兴起,就面临着记录哪些人登录系统,哪些人购物车里放了商品。...DRF支持四种认证方式: BasicAuthentication:基于用户名和密码的认证,适用于测试 SessionAuthentication:基于Session的认证 TokenAuthentication...sex=%E7%94%B7 搜索和排序 DRF提供过滤器帮助我们快速对字段进行搜索和排序 继续修改app视图中新增过滤字段: myapp/views.py from rest_framework.viewsets

4.3K10

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

,在Django基础工程的基础上,安装DRF并进行配置:比如统一接口返回格式、统一异常处理等,并在后面的文章,不断完善出一套DRF脚手架,以降低后面的开发同学的趟坑成本。...===================================== REST_FRAMEWORK = { } DRF优先从django配置文件的REST_FRAMEWORK字典获取配置信息...,获取不到则使用DRF默认配置: ......(接口提供账号密码),仅保留了使用Django默认session后端进行身份验证的机制,适用于与网站在相同的Session环境运行的AJAX客户端;身份验证成功后,会得到以下凭据: - `request.user...的视图类增加以下配置(具体配置参见文档),即可实现name、code、is_activated三个字段的综合查询接口:/systems/?

3.6K60

DRF框架的英文单词

这个在网上说法不一,先按这种理解,毕竟没人用这种操作方式了,而是用put。 8....20. model/'mɑdl/模型,我们在很多的时候都用到了这个单词,在DRF框架我们在下面的情况中用到了这个单词。指明该序列化器处理的数据字段模型类BookInfo参考生成。...,指明该序列化器包含模型类的哪些字段,'all'指明包含所有字段。...,默认False write_only 表明该字段仅用于反序列化输入,默认False required 表明该字段在反序列化时必须输入,默认True default 序列化和反序列化时使用的默认值 allow_null...表明该字段是否允许传入None,默认False validators 该字段使用的验证器 error_messages 包含错误编号与错误信息的字典 label 用于HTML展示API页面时,显示的字段名称

1.7K30

drf框架中所有视图及用法

0909自我总结 drf框架中所有视图及用法 一.drf框架的所有视图类 from django.views import View from rest_framework import views,...generics, mixins, viewsets 最基础:django自带的views类 drf框架中最基础的视图类:views.APIView drf框架工具视图:generics GenericAPIView...destroy 单删 viewsets视图集 上述视图都是基于django自带的views进行相关方法的分装 二.viewsets视图集 ViewSetMixin:视图集工具 - 重写as_view - 将 请求方式...- 可以mixins那继承功能,也可以自定义功能 ViewSet:与模型类无关或不是标准模型类接口 - 一般都是自定义功能 三.genericsGenericAPIView使用 将 queryset...:为True可以进行局部字段修改,默认为False为所有字段修改 使用这些方法的重要前提必须要 queryset serializer_class 如果我们要使用get_object()必须前端传给我们一个

1.8K30

drf的接口文档生成与管理

参考Core API官网以及drf官网,最终生成的接口文档是以网页的方式呈现的,自动接口文档能生成的是继承自APIView及其子类的视图,具体实现流程如下 2.1 安装Core API库 pip3 install...3、接口文档参数Description需要在模型类或序列化器类的字段help_text选项定义,例如 在模型类定义 class EnvironmentView(models.Model):...Swagger可生成一个具有互动性的API控制台,可快速学习和尝试API Swagger可生成客户端SDK代码,用于不同平台上Java、Python...的实现 Swagger文件可在许多不同的平台上代码注释自动生成...3.6 说明 Django REST Swagger19年开始就已弃用不再维护了,作者在官方网站上说明了更推荐使用drf-yasg 可以阅读https://github.com/marcgibbons...urlconf: 描述哪个文件获取路由配置, 缺省值是urls, 该参数直接透传至SchemaGenerator public: 描述API文档是否公开, 如果未 False, 则仅返回当前用户具有权限的接口

4.6K10

重点内容回顾-DRF

5.2Restful API接口设计风格 关键点: a.url地址尽量使用名词,不要使用动词; b.请求url地址采用不同的请求方式执行不同的操作;(POST新增/GET获取/PUT修改/DELETE删除...5.3序列化&反序列化 下面我们最近推文的项目来简单的理解两个概念。 序列化:将模型对象转换为字典或者json数据的过程。 反序列化:将前端传递的数据保存到模型对象的过程。...数据库查询 属性: queryset(指定视图所使用的查询集) 方法: get_queryset返回视图所使用的查询集 get_object视图所使用的查询集中查询指定的对象,默认根据pk进行查询。...def exception_handler(exc, context): # 先调用DRF框架的默认异常处理函数 response = drf_exception_handler(exc...团队开发注意事项 浅谈密码加密 Django框架的英文单词 Django数据库的相关操作 DRF框架的英文单词

2.4K20

Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤

但是代码可以看到: 通过在新建列表、其元素为单个商品信息组成的字典,一个一个地添加,显得很麻烦,可进行改进; 有些字段不能直接用json.dumps()方法序列化,如datetime,会报错,如商品列表视图修改为如下时...二、DRF实现商品列表页 Django Restful framework简称DRF,可以查看官方文档https://www.django-rest-framework.org/,官方文档可以看到,Django...例如,可以处理传入表单数据的相同方式处理传入JSON数据。...等,即字段过滤、搜索、排序3种方式。...显然,字符限制只是对指定的字段起作用,其他字段并不受影响,可以根据需要选择

5.3K20
领券