首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

用 GraphQL 查询你的 Django 应用

作为后端开发,学习使用 GraphQL 的动力,更多是想将自己从 CRUD 的泥沼拯救出来,将更多的精力放在其他更重要的技术上。...vs 扩展的 REST 协议 (此小节图片拷贝自网络,懒得画) REST 一样,GraphQL 并不是什么开发框架,它只是定义了一种通用型查询的 DSL。...在 REST 基础,我们增加了 fields 参数,并在 DRF Serializer 里做了特殊处理(你可以点击查看源码),实现的具体效果: # 查询 comment,并限制结果返回字段 /api/...就存在一个问题,当不使用 Relay 时,存在一些功能缺失: Fragment \ Directives 分页、过滤 通过 DRF Serializer 定义 Mutations 所以我们需要引入额外的库来解决...filter_fields ,针对不同的字段支持不同的 Django 复杂查询方法。

2K60

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

,在Django基础工程的基础上,安装DRF并进行配置:比如统一接口返回格式、统一异常处理等,并在后面的文章,不断完善出一套DRF脚手架,以降低后面的开发同学的趟坑成本。...===================================== REST_FRAMEWORK = { } DRF优先从django配置文件的REST_FRAMEWORK字典获取配置信息...,获取不到则使用DRF的默认配置: ......的接口一般会直接返回创建的数据或者数据列表,如图所示: [DRF接口返回一] [DRF接口返回二] 于是,结合开发规范对接口的要求,我们需要对DRF的返回格式进行统一处理 首先,我们简单看下DRF的视图类关系...提供的接口中: [根目录下的urls.py] 而在具体app的路由中,直接使用DRF的router模块,并将视图视图注册到路由中即可: [app的urls.py] 注册完以后,我们就可以通过:/api

3.6K60

Django DRF路由与扩展功能的实现

GenericViewSet时,虽然已经提供了基本调用数据集(queryset)序列化器属性,但是我们要编写一些基本的 API时,还是需要调用DRF提供的模型扩展类 [Mixins] """ from...扩展功能 为了方便接下来的学习,我们创建一个新的子应用 opt python3 manage.py startapp opt 因为接下来的功能需要使用到登录功能,所以我们使用django内置admin...可以在配置文件全局设置默认的权限管理类,: REST_FRAMEWORK = { .......可以在配置文件使用DEFAULT_THROTTLE_CLASSES DEFAULT_THROTTLE_RATES进行全局配置 REST_FRAMEWORK = { # 限流 'DEFAULT_THROTTLE_CLASSES...DRF路由与扩展功能的实现的文章就介绍到这了,更多相关Django DRF路由与扩展内容请搜索ZaLou.Cn

3K30

Django REST Framework-信号

一、概述Django REST Framework(DRF的信号(Signals)是一种非常有用的机制,可以让我们在某些重要的事件发生时执行一些自定义的代码。...二、什么是信号信号是Django的一个概念,用于处理某些重要的事件发生时执行自定义的代码。DRF扩展了Django的信号系统,添加了一些新的信号,使我们可以更好地处理API相关的事件。...在请求处理过程的某些特定时间点执行某些操作,请求前、请求后、异常处理等。DRF提供了多个信号,可以通过导入django.dispatch.Signal来访问这些信号。...三、信号的使用方法DRF信号的使用方法与Django信号的使用方法类似。我们可以使用@receiver装饰器将函数注册为信号处理器,以便在信号发出时执行该函数。...以下是一个简单的示例,演示如何在对象保存时执行某些操作:from django.db.models.signals import post_savefrom django.dispatch import

7.2K101

django写接口(实战篇)

view,那这部分我们继续深入了解下 DRF 的分页,多条件筛选以及 Token 权限认证 接口数据分页 如果说,后台给你返回的数据很多很多,然后又没有做分页(反正我是碰到过),然后就一直卡在加载界面...首先我们需要安装过滤器的模块 pip install django-filter 然后我们需要将过滤器模块到 settings.py 的 INSTALLED_APPS 进行注册才可以使用。...',) } 基本配置完后我们需要对我们的 viewSet 做些修改,增加一个 filter_backends 属性 filter_fields 属性 class PostViewSet(viewsets.ModelViewSet...title 作为另一个筛选条件 filter_fields = ['title'] 然后运行项目,我们可以通过网址 http://192.168.x.xxx:8080/api/posts/?...多条件筛选效果 DRF 的 filter_backends 还有 SearchFilter,OrderingFilter,DjangoObjectPermissionsFilter 等,有兴趣的可以查看官网

2K20

DRF 过滤排序分页异常处理

CursorPagination,游标分页 分页总结 异常 自定义异常 REST framework定义的异常 DRF 过滤排序分页异常处理 过滤 涉及到查询数据的接口才需要过滤功能 DRF过滤使用种类...'django_filters', # 需要注册应用, ] 在视图中添加filter_fields属性,指定可以过滤的字段 from django_filters.rest_framework import...title=Java&author=HammerZe # 多个字段过滤 总结: 第三方过滤类在filter_backends字段写,filter_fields字段指定过滤的字段 第三方过滤类不支持模糊查询...,是精准匹配 第三方过滤类的使用,视图类也必须继承GenericAPIView才能使用 在链接内通过&来表示的关系 自定义过滤类 步骤: 写一个类继承BaseFilterBackend,重写filter_queryset...指定要排序的字段 排序过滤,-号代表倒序,且必须使用ordering指定排序字段 '''内置过滤排序混用''' from rest_framework.filters import OrderingFilter

1K40

【愚公系列】2022年04月 Python教学课程 70-DRF框架之视图集

前言 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据...ViewSet主要通过继承ViewSetMixin来实现在调用as_view()时传入字典({‘get’:‘list’})的映射处理工作。...在ViewSet,没有提供任何动作action方法,需要我们自己实现action方法。...此扩展方法包括:get_serializer_class(获取序列化器返回)、action属性、自定义方法的使用 from django.db import DatabaseError from rest_framework.authentication...[UserRateThrottle] # 按照类视图限流,throttle_scope指定类视图限流名称 # throttle_scope='a' #指定过滤字段 # filter_fields

1.6K30

重点内容回顾-DRF

字符串 json.loads()是将json字符串转换成字典数据 5.4.4反序列化功能 1.数据校验 我们可以调用 is_valid()来进行数据的校验,我们还可以补充额外的验证: a.先写一个函数(about_django...return value c.在序列化器定义 validate方法进行补充验证(结合多个字段内容验证) def validate(self, attrs): # 此处的attrs是一个字典类型的数据...可以进行DRF框架默认全局权限设置,也可对其进行修改,还可以指定某个视图的权限控制设置,甚至可以自定义权限控制类。权限认证通常是一起使用的。 限流:注意,是对用户访问API接口频次进行限制。...我们既可以针对匿名用户认证用户进行统一限流设置,也可以分开进行限流设置。 过滤:需要先安装django-filter并进行注册设置,再在视图中通过 filter_fields设置过滤字段。...团队开发注意事项 浅谈密码加密 Django框架的英文单词 Django数据库的相关操作 DRF框架的英文单词

2.4K20

DRF系列总结一:DRF是啥?为啥子要用?

目前组内很多项目都在用Django REST framework(简称DRF)来构建Restful WebApi,并推广到了许多实习生同学外部服务商的开发同学使用。...首先,假设阅读这篇文章的同学使用Django或开发过蓝鲸应用,然后,我们先来简单了解下Django REST framework(DRF): 一、什么是Django REST framework(DRF...先从项目规模来看,如果是小项目(几个简单的接口页面),用Django的FBV足矣,简单明了,学习成本低;中大型项目、多人参与的项目,建议使用DRF,虽然学习路线较长,但是长期来看,效率规范性都更高。...image.png 再来看这张图,借助DRF,我们可以将接口的开发过程规范化,形成一个统一的代码工作流:Serializers负责数据的序列化反序列化,结合Validators可以低成本的实现参数校验...通过Django+DRF,我们还可以很快速的配置出一套Django模型的CRUD接口,将一些开发工作变成配置工作,借助一些DRF周边工具,django_filters,可以快速实现模型数据的过滤类接口

9.4K114

Flask框架在Python面试的应用与实战

在Python面试,对DRF的理解与实际应用能力是衡量候选人Web服务开发能力的重要指标。本篇博客将深入浅出地探讨DRF面试中常见的问题、易错点以及应对策略,并结合实例代码进行讲解。...版本控制:讨论DRF实现API版本控制的方法,URL路径版本、请求头版本等。...权限控制与认证权限(Permissions):概述DRF的权限系统,列举常用权限类(IsAuthenticated、IsAdminUser等),并展示如何自定义权限。...异常处理:介绍如何使用DRF的异常体系(PermissionDenied、NotAuthenticated、ValidationError等)处理错误情况,并自定义异常响应。...对于复杂查询,考虑使用Django ORM的查询优化技巧或添加数据库索引。

10010

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

modelserializer实现商品序列化 3.GenericView方式实现商品列表页分页 4.viewsetsrouter实现商品列表页 5.各种View的分析 三、DRF使用 1.DRF的...RequestResponse类 2.DRF过滤器 过滤的使用 搜索的使用 排序的使用 胸怀是非常重要的,一个人有眼光没胸怀是很倒霉的。...一、普通方式实现商品列表页 先了解Django实现Json数据传递的基本方法,可以查看中文文档https://www.cntofu.com/book/35/index.html,并结合英文文档了解其用法...Django中有Form,也有ModelForm,DRF也有ModelSerializer,相比于Serializer,它省去了模型所有字段的添加处理数据方法的实现,serializers.py简化如下...三、DRF使用 1.DRF的RequestResponse类 DRFDjango的RequestResponse类进行了进一步的封装,因此使用起来更方便。

5.3K20

Django REST Framework-路由的正则表达式

Django REST Framework(DRF,路由系统是一个重要的概念,用于将请求路由到正确的视图函数。路由系统使用正则表达式来匹配URL。...正则表达式中使用的一些关键字符符号在DRF也具有特殊含义,我们将在下面的章节详细讨论这些内容。基本用法在DRF,路由正则表达式通常用于将URL模式与视图函数匹配。...= [ path('articles/', ArticleView.as_view(), name='articles'),]在上面的代码,我们使用Django的path()函数定义了一个URL...正则表达式特殊字符DRF路由正则表达式,某些字符具有特殊含义,我们需要特别注意这些字符的使用。下面是一些常用的特殊字符:^:匹配字符串的开头。$:匹配字符串的结尾。.:匹配任何字符(除了换行符)。...结论在本文中,我们深入探讨了DRF的路由正则表达式,并提供了一些示例来帮助您理解其使用方法。我们讨论了DRF路由中一些特殊字符的含义,并演示了如何在URL模式定义整数、字符串、日期可选参数。

68411

Django进阶:DRF(Django REST framework)

Django,我们通过model-view-template实现了后端前端的通信。但前端未必是用Django的template实现的,也可以用单独的前端框架(vue)实现。...“Django REST 框架”这个名字是在 2011 年初决定的,选择它只是为了确保开发人员很容易找到这个项目。在整个文档,我们尝试使用更简单、技术上正确的术语“Web API”。...创建一个简单的API,允许管理员查看编辑系统的用户组。...可以发现,Django程序相比,我们没有写template做前端的显示,而是写了序列化类提供API。前端可以分离出来,使用API来后端通信。...django drf (图片来自:一图看懂DjangoDRF(https://zhuanlan.zhihu.com/p/53957464)) 测试API: 使用浏览器访问网址: http://127.0.0.1

49720
领券