文章分类 -  DRF

摘要:如果某个API需要传递一些条件进行搜索,其实就在是URL后面通过GET传参即可,例如: /api/users?age=19&category=12 在drf中也有相应组件可以支持条件搜索。 1 自定义Filter(推荐) # urls.py from django.urls import path 阅读全文
posted @ 2022-10-25 17:06 角角边 阅读(32) 评论(0) 推荐(0) 编辑
摘要:在之前进行drf开发时,对于路由我们一般进行两种配置: 视图继承APIView from django.urls import path from app01 import views urlpatterns = [ path('api/users/', views.UserView.as_view 阅读全文
posted @ 2022-10-25 16:21 角角边 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1 APIView View,django APIView,drf,在请求到来时,新增了:免除csrf、请求封装、版本、认证、权限、限流的功能。 class GenericAPIView(APIView): pass # 10功能 class GenericViewSet(xxxx.View-2个功 阅读全文
posted @ 2022-10-25 09:31 角角边 阅读(18) 评论(0) 推荐(0) 编辑
摘要:在查看数据列表的API中,如果数据量比较大,肯定不能把所有的数据都展示给用户,而需要通过分页展示。 在drf中为我们提供了一些分页先关类: BasePagination,基类 PageNumberPagination(BasePagination) 支持 /accounts/?page=4&page 阅读全文
posted @ 2022-10-24 16:02 角角边 阅读(28) 评论(0) 推荐(0) 编辑
摘要:需求: 编写一个序列化类,实现创建用户 提供:{"name":"x1", "age":11, "gender":1} 返回:{"id":1, "name":"x1","age":11,"gender":"男"} class NbUserInfo(models.Model): name = model 阅读全文
posted @ 2022-10-21 17:21 角角边 阅读(16) 评论(0) 推荐(0) 编辑
摘要:1 序列化和数据校验同时使用 如果两个字段生成值和返回值一样的话,可以使用一个serializer 如果非要想生成字段时5个字段,返回时3个字段,那么怎么实现呢? from django.db import models class Depart(models.Model): title = mod 阅读全文
posted @ 2022-10-21 15:46 角角边 阅读(34) 评论(0) 推荐(0) 编辑
摘要:序列化: - 路由 -> 视图 -> 去db获取数据 -> 转换成Json对象{}&[] -> JSON处理 数据校验: - 路由 -> 视图 -> request.data -> 校验(序列化器的类) -> 操作(db,序列化器的类) 结合: 创建用户请求:{"user":"","password 阅读全文
posted @ 2022-10-21 09:41 角角边 阅读(86) 评论(0) 推荐(0) 编辑
摘要:1 序列化数据 1-1 serializer from django.db import models class Depart(models.Model): title = models.CharField(verbose_name='部门', max_length=32) order = mod 阅读全文
posted @ 2022-10-20 10:52 角角边 阅读(37) 评论(0) 推荐(0) 编辑
摘要:1 如何基于自定义MyType创建类 方式1: class MyType(type): def __new__(cls, *args, **kwargs): xx = super().__new__(cls, *args, **kwargs) return xx Foo = MyType("Foo" 阅读全文
posted @ 2022-10-19 16:46 角角边 阅读(15) 评论(0) 推荐(0) 编辑
摘要:使用 request.data 获取请求体中的数据。 这个 reqeust.data 的数据怎么来的呢?其实在drf内部是由解析器,根据请求者传入的数据格式 + 请求头来进行处理。 不填写,默认解释器为: [<class 'rest_framework.parsers.JSONParser'>, < 阅读全文
posted @ 2022-10-19 15:09 角角边 阅读(41) 评论(0) 推荐(0) 编辑
摘要:版本,在请求中携带版本号,便于后续API的更新迭代。 http://www.5xclass/api/v1/info http://www.5xclass/api/v2/info 在restful规范中要去,后端的API中需要体现版本。 1 GET参数传递 # settings.py REST_FRA 阅读全文
posted @ 2022-10-19 10:42 角角边 阅读(19) 评论(0) 推荐(0) 编辑
摘要:1 限流介绍 开发过程中,某个接口不想让用户访问过于频繁,限流机制,例如:短信接口(ip限制,验证码,防止爬虫机制) 限制访问频率前提: 已登录用户,用户的主键,ID,用户名 未登录,IP唯一表示 如何限制: 用户id:【访问时间1, 访问时间2, 】 (比如:10分钟3次) 获取当前时间 当前时间 阅读全文
posted @ 2022-10-18 16:27 角角边 阅读(29) 评论(0) 推荐(0) 编辑
摘要:认证组件 = [认证类,认证类,...] --> 执行每个认证类的authenticate方法: - 认证成功或失败,不会在执行后续的认证类 - 返回None,执行后续的认证类 - 像是 or 权限组件 = [权限类,权限类,...] --> 执行每个权限类的has_permission方法: - 阅读全文
posted @ 2022-10-18 14:06 角角边 阅读(21) 评论(0) 推荐(0) 编辑
摘要:在开发API过程中,有些功能需要登录才能访问,有些无需登录。drf中的认证组件主要就是用来实现此功能。 关于认证组件,我们用案例的形式,先来学习常见的用用场景,然后再来剖析源码。 1 案例1 项目要开发3个接口,其中1个无需登录接口、2个必须登录才能访问的接口。 在浏览器上中访问:/order/to 阅读全文
posted @ 2022-10-17 15:54 角角边 阅读(87) 评论(0) 推荐(0) 编辑
摘要:1 oop知识补充 __getattr__ class Foo(object): def __init__(self, name, age): self.name = name self.age = age def show(self): return 123 def __getattr__(sel 阅读全文
posted @ 2022-10-17 14:41 角角边 阅读(65) 评论(0) 推荐(0) 编辑
摘要:django restframework框架 是在django的基础上又给我们提供了很多方便的功能,让我们可以更便捷基于django开发restful API,来一个简单的实例 注意:drf支持cbv和fbv,只不过基于drf在进行api开发时,一般都是使用cbv的形式。 pip install d 阅读全文
posted @ 2022-10-17 10:39 角角边 阅读(34) 评论(0) 推荐(0) 编辑
摘要:FBV,function base views,其实就是编写函数来处理业务请求。 from django.contrib import admin from django.urls import path from app01 import views urlpatterns = [ path('u 阅读全文
posted @ 2022-10-17 10:14 角角边 阅读(18) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示