关键词:
昨日回顾:
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的使用
drf视图(代码片段)
2个视图基类APIView(rest_framework.views.APIView)APIView是RESTframework提供的所有视图的基类,继承自Django的View父类。APIView与View的不同之处在于:传入到视图方法中的是RESTframework的Request对象,而不是Django的HttpRequeset对象;视图方法可以返... 查看详情
04drf视图组件(代码片段)
一.视图DjangoRESTframwork提供的视图的主要作用:控制序列化器的执行(检验、保存、转换数据)控制数据库查询的执行1.1视图继承关系1.2视图2个视图基类APIViewGenericAPIView[通用视图类]1.2.1APIViewrest_framework.views.APIViewAPIView是RESTframewor... 查看详情
drf的视图和路由(代码片段)
DRF的视图APIView我们django中写CBV的时候继承的是View,rest_framework继承的是APIView,那么他们两个有什么不同呢~~~urlpatterns= [ url(r‘^book$‘,BookView.as_view()), url(r‘^book/(?P<i 查看详情
drf框架serializer之视图优化(代码片段)
...列化中,我们通过创建序列化器对象的方式大大地简化了视图函数的代码,前端传入的数据通过反序列化操作进行了各种数据校验,代码如下:fromdjango.httpimportJsonResponsefromdjango.viewsimportViewfromdjango.dbimportconnectionimportjsonfrom.modelsim... 查看详情
drf视图类关系详解(代码片段)
...,request._request#3json模块是否执行反序列化bytes格式#4考你:视图类的方法中:self.request,就是当次请求的request#5Response:类,实例化传一堆参,data=字典,status=状态码( 查看详情
drf视图(代码片段)
目录开始使用内置视图请结合【DRF序列化】此文献中的数据文件及序列化文件来阅读如下代码.DRF视图为我们提供了非常简便的方法——内置了增删改查等一系列的操作.我们只需在url中指定对应的方法,视图继承内置方法的类,... 查看详情
drf序列化器之请求响应以及视图(代码片段)
...ttp请求处理drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作。所以在django原有的django.views.View类基础上,drf封装了多个视图子类出来提供给我们使用。DjangoRESTframwork提供的视图的主要作用:控制序列化器的执... 查看详情
drf4.drf视图开发restfulapi接口(代码片段)
四种方式:函数式编程:functionbasedview类视图:classedbasedview通用类视图:genericclassedbasedviewDRF的视图集Viewsets原生DjangoFBV(Funcitonbasedview)编写,应用的views.pyimportjsonfromdjango.httpimportJsonResponsefromdjango.views.decorators.csrfimportcsrf_exemptcourse... 查看详情
drf之路由系统与视图(代码片段)
手动路由编写#路由fromdjango.conf.urlsimporturlfromapp01.viewsimportUserListViewurlpatterns=[#GET请求查询所有#POST请求增加url(r'^users/$',UserListView.as_view()),url(r'^users.(?P<format>w+)/$',Us 查看详情
学习drf之前(代码片段)
...已经了解过CBV以及FBV什么是FBV和CBV呢~~ FBV基于函数的视图 CBV基于类的视图也就是说我们是用函数编写视图~还是类编写视图~~我们来看下两个的简单实现~~urlpatterns=[path(‘admin/‘,admin.site.urls),path(‘test_fbv‘,t 查看详情
drf视图和路由(代码片段)
APIView:在django中写CBV的时候是继承View,rest_framework继承的是APIView,这两种具体有什么不同呢?urlpatterns=[url(r‘^book$‘,BookView.as_view()),url(r‘^book/(?P<id>d+)$‘,BookEditView.as_view()),]无论是View还是APIView最开始调用的都是as_ 查看详情
drf之视图组件(代码片段)
不断的优化我们写的程序,是每个程序员必备的技能和职业素养,也是帮助我们成长的非常重要的手段。相关知识点相关知识点一:RESTfulapi接口规范我给大家总结的REST的最重要的一句话,那就是:url用来唯一定位资源,http请求... 查看详情
drf视图家族(代码片段)
drf视图家族视图家族- 视图基类,视图工具类,工具视图类,视图集视图基类:APIView、GenericAPIView视图工具类:mixins包下的五个类(六个方法)工具视图类:generics包下的所有GenericAPIView的子类视图集:viewsets包下的类generics中... 查看详情
drf入门规范(代码片段)
...化序列化与反序列化的过程,不仅如此,还提供丰富的类视图、扩展类、视图集来简化视图的编写工作。 查看详情
django-rest-framework---总结(代码片段)
...与反序列化整合(重点)3.整体单改4.单与整体局部修改视图类视图类传递参数给序列化类二次封装Response类视图家族GenericAPIView基类mixins视图工具集-辅助GenericAPIView工具视图视图集GenericAPIView与APIView最为两大继承视图的区别工具... 查看详情
drf框架之视图的扩展类简介(代码片段)
...架,为我们提供的试图扩展类的使用方法即作用。在使用视图扩展类时,需要将mixins模块导入到view文件中。fromrest_frameworkimportmixins并且,在使用视图扩展类时,必须结合GenericAPIView基类一起使用。所谓,视图的扩展类,就是Generi... 查看详情
drf视图组件(代码片段)
一基本视图写一个出版社的增删查改resful接口 路由:url(r‘^publish/$‘,views.PublishView.as_view()),url(r‘^publish/(?P<pk>d+)/$‘,views.PublishDetailView.as_view()),视图:classPublishSerializers(serializers.ModelSerializer):classMeta:model=models.Publishfields=‘_... 查看详情
drf-视图集路由系统action装饰器(代码片段)
1.9个视图扩展类1.两个视图基类:APIView、GenricAPIView2.5个视图扩展类:CreateModelMixin,UpdateModelMixin,RetrieveModelMixin,ListModelMixin,DestroyModelMixin3.9个视图子类:CreateAPIView,DestroyAPIView,ListAPIView,RetrieveAPIView,UpdateAPIView,ListCreateAPIView,RetrieveDestroyAPIVi... 查看详情