ModelViewSet + ModelSerializer】的更多相关文章

 ModelSerializer (封装好的序列化器,不需要我们写字段) from rest_framework import serializers from .models import * class UserSer(serializers.ModelSerializer): class Meta: model = User # 表名 fields = '__all__' # 获取所有信息 depth = 1 # 序列化外键 (一层序列一层) ModelViewSet (封装好的drf框架…
1.DRF初始化 DRF框架的8个核心功能 1.认证(用户登录校验用户名密码或者token是否合法) 2.权限(根据不同的用户角色,可以操作不同的表) 3.限流(限制接口访问速度) 4.序列化(返回json) 5.分页 6.版本(接口版本号,用 v1/v2/v3) # api.example.com/v1/login # 只有用户名密码登录 # api.example.com/v2/login # 手机号,微信 登录 7.过滤(username=zhangsan) 8.排序(ordering=-…
  DjangoRestFramework学习二之序列化组件.视图组件   本节目录 一 序列化组件 二 视图组件 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 序列化组件 首先按照restful规范咱们创建一些api接口,按照下面这些形式写吧: Courses --- GET ---> 查看数据----->返回所有数据列表[{},{},] Courses--- POST --->添加数据 -----> 返回添加的数据{ } courses/1 ---…
前言 今天一直在整理Django的rest_framework的序列化组件,前面一共写了2篇博客,前面的博客给的方案都是一个中间的状态的博客,其中有很多的冗余的代码,如果有朋友不清楚,可以先看下我前面的博客 第一篇,使用minix类来实现序列化和反序列化 https://www.cnblogs.com/bainianminguo/p/10463741.html 第二篇,使用通用的类的方法实现序列化和反序列化 https://www.cnblogs.com/bainianminguo/p/1046…
一.创建项目 1.创建 项目 : django-admin startprojet drf 2. 创建 两个app   ------ app1 ,book python manage.py startapp app1 python manage.py startapp book 3. settings 配置  ,一定不能少了 rest_framework 这个app的注册. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.au…
以UserInfo表登陆接口为例 ModelViewSet的用法十分简单,定义一个视图类,指定一个模型表,指定一个序列化类即可帮我们完成增删改查等功能 示例: # 视图层 from app01.MySerailizers import UserSerializer from rest_framework.viewsets import ModelViewSet class Login(ModelViewSet): # 继承ModelViewSet # authentication_classes…
Python 1.4创建user/serializers.py写序列化器 from rest_ framework import serializers from user .models import User def address_ validate( data): #独立校验器 # raise serializers . ValidationError('请填写实际地址') #有错就抛出异常 #没错就返回数据 return data #没错就返回数据 return data class…
1 安装DjangoRestFramework pip install djangorestframework==3.11.1 2.在settings.py中注册 INSTALLED_APPS = [ 'rest_framework', ] 3. user/urls.py三部曲 1.导包 from rest_framework.routers import DefaultRouter from django.urls import path from . import view 2.路由 rou…
在views中添加 from django.shortcuts import render # Create your views here. from rest_framework.views import APIView from rest_framework.response import Response from app03.models import User from .serializers import * from rest_framework.viewsets import…
1.DRF初始化 1.认证 2.权限 3.限流 4.序列化 5.分页 6.版本  7.过滤 8.排序 1.1安装DjangoRestFramework pip install djangoresframework==3.11.1 pip install django-filter==2.3.0   #过滤器 pip install markdown     #Markdown support for the browsable API 1.2在syl/settings.py中注册 INSTALL…
1.DRF初始化 1.认证 2.权限 3.限流 4.序列化 5.分页 6.版本  7.过滤 8.排序 1.1安装DjangoRestFramework pip install djangoresframework==3.11.1 pip install django-filter==2.3.0   #过滤器 pip install markdown     #Markdown support for the browsable API 1.2在syl/settings.py中注册 INSTALL…
时常,你需要对django model 的实例进行序列化.ModelSerializer 类提供了一个捷径让你可以根据 Model 来创建 Serializer. ModelSerializer 类和 Serializer 类一样,不过添加了以下功能: 它会基于 model 自动创建一些字段 它会自动生成一些验证,比如 unique_together 验证. 它包含简单的默认的 create() 和 update() 声明一个 ModelSerializer 看起来是这样: class Acco…
class AccountSerializer(serializers.ModelSerializer): class Meta: # 模型名称 model = User # 序列化返回的字段 fields = ('id', 'account_name', 'users', 'created') # 这个字段不返回 exclude = ('users',) # 显示的深度 depth = 1 # 默认只读,不接受用户修改 跟字段设置的read_only=True效果一样 read_only_fi…
ModelSerializer 使用 不需要单独写字段的 序列化工具类 相当于 ModelForm 写法:以及 注意事项: 继承 serializers.ModelSerializer 在类中填写 class Meta: 指定数据 model=models.Books 指定表 fields = '__all__' 指定字段 depth = 1 # 所有有关系的字段都变成 read_only 一般不使用 exclude = [] # 排除某个字段 extra_kwargs = { } # 每个字段…
一.ModelViewSet 路由 因为我们正在使用ViewSet代替View,实际上已经不再需要自己来设计URL的配置了.将资源和视图.URL绑定到一起是一个可以自动完成的过程,只需要使用Router即可.我们需要做的就是将视图集注册到Router上去而已. from django.conf.urls import url from app01 import views urlpatterns = [ #评论 url(r'comment/$', views.CommentViewSet.as_…
建立model数据库 from django.db import models __all__ = ['Book', 'Publisher', 'Author'] # Create your models here. class Book(models.Model): title = models.CharField(max_length=32) CHOICES = ((1, 'python'), (2, 'linux'), (3, 'go')) category = models.Intege…
url部分: url(r'^book/$',views.book.as_view()),url(r'^books/(\d+)/$', views.bookdetail.as_view(),name='book_detail'), #url(r'^books/(?P<pk>\d+)/$', views.bookdetail.as_view(), name='book_detail'),##有名分组,当设置了HyperlinkedIdentityField的时候 ''' 讲解:当下面的url被访问…
1.REST Framework概述 Django REST framework是一套基于Django的REST框架,是一个用于构建Web API的功能强大且灵活的工具包. RESTful 简述 Representational State Transfer(REST),是一种架构样式,定义了一套用于创建WEB服务的约束.当前WEB开发趋势就是前端层出不穷,为了保证一个后台同时适用于多个前端,需要一种统一的机制或API,而RESTful API是目前前后端分离的最佳实践. 为什么需要前后端分离?…
这里的介绍的serializers.ModelSerializer就和我们之前学习的modelform一样 serializers.ModelSerializer如下几个功能 1.序列化queryset数据 2.反序列化json数据,将反序列化后的数据转换成model对象 3.反序列化的时候还是可以对数据做校验 4.如果合法,可以调用sava方法进行post或者put请求操作 5.如果不合法,则返回错误 下面我们进入serializers.ModelSerializer的学习 首先写一个mode…
一.视图类 #bookview是一个视图类,继承自ModelViewSet class BookView(ModelViewSet): throttle_classes = [VisitThrottle2] queryset = models.Book.objects.all() serializer_class = BookModelSerializer ModelViewSet ModelViewSet: class ModelViewSet(mixins.CreateModelMixin,…
serializer用起来稍微麻烦,可以使用ModelSerializer,类似于django里的Form与ModelForm 1.定义ModelSerializer from rest_framework import serializers from goods.models import Goods, GoodsCategory # class GoodsSerializer(serializers.Serializer): # """ # Goods的serializ…
定义 比如我们创建一个BookInfoSerializer class BookInfoSerializer(serializers.ModelSerializer): """图书数据序列化器""" class Meta: model = BookInfo fields = '__all__' model指明参照哪个模型类 fields指明为模型类的哪些字段生成 我们可以在python manage.py shell中查看自动生成的BookInf…
To build rest api easily, we can use ModelViewSet from rest_framework. It provides GET, POST, DELETE, PUT methods. from rest_framework.viewsets import ModelViewSet from .serializers import ListSerializer, CardSerializer from .models import List, Card…
0905自我总结 drf框架serializers中ModelSerializer类 基于seriallizer类进行简化 https://www.cnblogs.com/pythonywy/p/11455508.html 一.简单的使用 导入from rest_framework import serializers 与基础serializer类后续使用的作用相似 class 自定义名称(serializers.ModelSerializer): class Meta: model=对应的模型…
前面学习Serializers用法时,发现所有的序列化都与我们的模型紧密相关. django_restframework也给我提供了跟模型紧密相关的序列化器——ModelSerializer. 它会根据模型自动生成一组字段:它简单的默认实现了.update()以及.create()方法. 一.ModelSerializer序列化 1.定义ModelSerializer序列化器 # 针对models设计和声明序列化类 from rest_framework import serializers f…
首先介绍一下相关概念 序列化器(Serializer) 1. 自定义型:  继承rest_framework.serializers.Serializer 2. 模型类型:  继承rest_framework.serializers.ModelSerializer 创建Serializer对象 构造方法:Serializer(instance=None, data=empty, **kwarg) 参数1,序列化必须传入的模型类对象 参数2,反序列化时把数据传入data 额外参数:例如contex…
ModelViewSet源码 class ModelViewSet(mixins.CreateModelMixin, mixins.RetrieveModelMixin, mixins.UpdateModelMixin, mixins.DestroyModelMixin, mixins.ListModelMixin, GenericViewSet): """ A viewset that provides default `create()`, `retrieve()`, `…
一: rest_framework 中 serializers.Serializer的不方便之处(以下简称Serializer) a:需要定义每一个字段,并且这个字段是和models字段及其类似. b:和froms是不是很像,有没有类似ModelFroms类似的模块,简化字段的编写,当然有ModelSerializer就是这中类型 二:ModelSerializer序列化 a:view中的文件不需要修改 b:重新编写BookSerializers继承serializers.ModelSerial…
media资源路径设置  (设置好后把图片放在这个文件夹中,通过链接能访问到图片) 1.先在根目录设置一个media文件夹 2.配置settings.py,加上下面的 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 3.在urls.py路由设置 from django.views.static import serve from django.conf import settings urlpatterns =…
前言 serializers.Serializer可以对modle模型中的字段序列化,并且必须写create和update两个方法.ModelSerializer可以看成是Serializer的一个升级版,功能更强大,更方便. 实际上ModelSerializer类继承了Serializer类. ModelSerializer ModelSerializer类能够让你自动创建一个具有模型中相应字段的Serializer类.这个ModelSerializer类和常规的Serializer类一样,不…