0802 DRF 视图
昨日回顾:
1. Serializer(序列化)
1. ORM对应的query_set和ORM对象转换成JSON格式的数据
1. 在序列化类中定义自定义的字段:SerializerMethodField
在类中定义 get_自定义字段名(self, obj)方法
2. read_only 只在显示(查询)时才会有效。 2. 对前端POST过来的数据做有效性的校验
1. 一定要将数据以data=的形式传递到序列化类中!!!
ser_obj = CommentSerializer(data=comment_data)
2. 判断数据是否有效
ser_obj.is_valid():
ser_obj.validated_data 中保存经过校验的有效数据 3. 局部钩子
定义一个validate_字段名(self, value)
4. 全局钩子
定义一个validate方法 3. .save()方法将符合要求的数据存入数据库
1. 本质上还是调用ORM的create()方法
类名.objects.create(**ser_obj.validated_data) 2. 超链接的序列化
1. 超连接字段的三个参数
# 文章超链接序列化
class ArticleHyperLinkedSerializer(serializers.HyperlinkedModelSerializer):
# view_name参数 默认使用 表名-detail
# lookup_url_kwarg参数 默认使用pk,指的是反向生成URL的时候 路由中的分组命名匹配的key
# lookup_field参数 默认使用的pk, 指的是反向生成URL的时候, 路由中分组命名匹配的value
school = serializers.HyperlinkedIdentityField(
view_name='school-detail111',
lookup_url_kwarg='name',
lookup_field='school_name'
)
2. 想要生成完整的超链接API,在序列化的时候还要传入 context={'request': request}
ser_obj = app01_serializers.ArticleHyperLinkedSerializer(all_article, many=True, context={'request': request})
1. 想要生成相对路径
context={'request': None}
今日内容:
1. 面向对象的三大特性
1. 封装
1. 把共有的数据当成一类物体的属性
2. 把共有的功能当成一类物体的方法
2. 继承
1. 把共有的属性或方法抽离出来放到一个基类(父类)中
3. 多态
1. 不同的物体调用同一个方法有不同的效果
Python中数字的+和字符串的+
2. 葫芦娃的故事
五个娃
↓
奇数娃和偶数娃
↓
套娃
3. GenericAPIView和五个混合类的组合使用
4. RetrieveUpdateDestroyAPIView和ListCreateAPIView的使用
5. ModelViewSet的使用
6. ModelViewSet Router的使用
0802 DRF 视图的更多相关文章
- 使用DRF视图集时自定义action方法
在我们用DRF视图集完成了查找全部部门,创建一个新的部门,查找一个部门,修改一个部门,删除一个部门的功能后,views.py的代码是这样子的: class DepartmentViewSet(Mode ...
- 【DRF视图】
目录 开始使用内置视图 请结合[DRF序列化]此文献中的数据文件及序列化文件来阅读如下代码. DRF视图为我们提供了非常简便的方法--内置了增删改查等一系列的操作. 我们只需在url中指定对应的方法, ...
- DRF视图-请求与响应
DRF视图 drf的代码简写除了在数据序列化体现以外,在视图中也是可以的.它在django原有的django.views.View类基础上,drf内部封装了许多子类以便我们使用. Django RES ...
- DRF视图组件
DRF视图组件: CVB模式继承----五层 from django.views import View # Django的View from rest_framework.views import ...
- drf 视图使用及源码分析
前言 drf视图的源码非常的绕,但是实现的功能却非常的神奇. 它能够帮你快速的解决ORM增删改查的重复代码,非常的方便好用. 下面是它源码中的一句话: class ViewSetMixin: &quo ...
- DRF 视图组件
目录 DRF 视图组件 视图组件大纲 两个视图基本类 五个扩展类 九个子类视图 视图集 常用视图集父类 魔法类 一览表 DRF中视图的"七十二变" 第一层:基于APIview的五个 ...
- restfull规范、DRF视图和路由
一.restfull规范的简单介绍 1.介绍 REST:表述性状态转移,是一种web交互方案 资源:在web中只要有被引用的必要都是资源 URI: URI 统一资源标识符 URL 统一资源定位符 统一 ...
- drf视图组件、认证组件
视图组件 1.基本视图 url(r'^publish/$', views.PublishView.as_view()), url(r'^publish/(?P<pk>\d+)/$', vi ...
- DRF 视图和路由
Django Rest Feamework 视图和路由 DRF的视图 APIView 我们django中写CBV的时候继承的是View,rest_framework继承的是APIView,那么他们两个 ...
随机推荐
- 【spring boot】在spring boot下使用多线程
使用场景: 方法处理到某一步,需要将信息交给另一个线程去处理!! =================================================================== ...
- goldengate原理与简单配置
goldengate的原理:http://www.ipresst.com/works/52bc44c42954a7d73b0003f2 简单单向配置: 在oracle官网下载下载 GoldenGate ...
- SharePoint2013导入Excel到列表
using Microsoft.SharePoint; using System; using System.Collections.Generic; using System.ComponentMo ...
- poj 2942(点双连通+判奇圈)
题目链接:http://poj.org/problem?id=2942 思路:我们对于那些相互不憎恨的骑士连边,将每次参加会议的所有人(不一定是整个骑士团,只需人数>=3且为奇数)看做一个点双联 ...
- 1501: 货币系统(money)
1501: 货币系统(money) 时间限制: 1 Sec 内存限制: 64 MB 提交: 33 解决: 12 [提交][状态][讨论版] 题目描述 母牛们不但创建了它们自己的政府,而且选择建立了 ...
- 测试kernel.pid_max值
# sysctl kernel.pid_max kernel.pid_max = # sysctl - kernel.pid_max = #include <unistd.h> #incl ...
- 七牛上传ipa后自动生成plist文件
1.利用模板技术动态生成plist文件的内容:(模板内容和data替换为plist需要的内容) //artTemplate <script src="js/template.js&qu ...
- Android开发:《Gradle Recipes for Android》阅读笔记1.4
在android studio下可以使用gradle视图运行gradle. gradle任务被分别组织在不同目录下,如android,build,install. 需要执行特定的任务只要双击任务名称. ...
- node.js 关于跨域和传递给前台参数
/*为app添加中间件处理跨域请求*/ app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin& ...
- POJ 1039 Pipe【经典线段与直线相交】
链接: http://poj.org/problem?id=1039 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#probl ...