Django Rest framework基础使用之 serializer

rest-framework文档地址:http://www.django-rest-framework.org/

1、安装:pip install djangorestframework

  说明:如果安装coreapi的时候,出现utf-8报错,可以将虚拟环境中的Lib---->site package--->pip--->compat---__init__.py中的第75行return s.decode("utf-8")改为"gbk",然后uninstall coreapi,再重新安装。

2、将 "rest_framework"加入到INSTALLED_APPS 设置中

3、配置url

  from django.conf.urls import url, include

  url(r"^api-auth/", include("rest_framework.urls"))

  ------这个url是restframework登录和登出的url,在使用浏览器API测试的时候是很有用的,如果你定义的某个接口是需要登录之后才能被调用的话。

  from rest_framework.documentation import include_docs_urls

  url(r"docs", include_docs_urls(title=""))

  ------配置DRF生成自动API文档

4、restframework的serializer.Serializer

  类似于Django的Form类,可用来序列化和反序列化实例对象

  

使用serializer序列化model实例:

  

我们也可以用serializer来序列化querysets,序列化querysets的时候,我们需要在serializer参数中加上many=True的标志

  

5、ModelSerializer

  从上面的例子中可以看出来,使用Serializer在定义序列化字段的时候,写的很复杂,几乎需要把我们的mode全部复制一遍,为了减少代码量,ModelSerializer应运而生

  同样是上面的例子,我们用ModelSerializer来重构如下:

  

  那么 ModelSerializer到底做了什么?通过下面这几行代码,我们可以看出来它只是通过model将字段自动关联起来了:

  from snippets.serializers import SnippetSerializer
  serializer = SnippetSerializer()
  print(repr(serializer))  

  我们再去看它的ModelSerializer源码,可以看到,它里面已经为我们写好了create和update函数

 

原文地址:https://www.cnblogs.com/fiona-zhong/p/9651452.html

时间: 2024-08-30 15:56:38

Django Rest framework基础使用之 serializer的相关文章

Django Rest framework基础使用之Request/Response

1.Request restframework提供了一个Request对象(rest_framework.request.Request) Request对象继承了Django默认的HttpRequest对象,它最核心的功能就是请求数据都包含在request.data属性中,类似于Django的request.POST,但是request.data应用范围更广: 1)request.data:返回解析之后的请求体数据,类似于Django中标准的request.POST和request.FILES

Django REST framework基础:视图和路由

在原来modelserializers基础上进行了一次封装方便了使用 # author class AuthorModelSerializers(serializers.ModelSerializer): class Meta: model = models.Author fields = "__all__" from rest_framework import mixins from rest_framework import generics class AuthorView(mi

Django rest framework 基础

1.1 什么是RESTful 1. REST与技术无关,代表的是一种软件架构风格(REST是Representational State Transfer的简称,中文翻译为“表征状态转移”) 2. REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识 3. 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性 4. 对于REST这种面向资源的架构风格,有人提出一种全新的结构理念,即:面向资

Django Rest framework序列化流程

目录 一 什么是序列化 二 Django REST framework配置流程之Serializer 三 Django REST framework配置流程之ModelSerializer 一 什么是序列化 序列化模型与序列化关系模型 序列化模型,顾名思义,即对 models 里的数据模型作序列化. 而序列化关系模型则是对 models 里数据模型中带有关系的如 ForeignKey, ManyToManyField 和 OneToOneField 字段作序列化. Django Rest Fra

Django Rest Framework Serializer的简单使用

1.RESTful 1.1 定义 REST(Representational State Transfer)与技术无关,代表一种软件架构风格,中文为表征状态转移. 1.2 RESTful API设计 API与用户的通信协议,总是使用HTTPS协议 域名 https://api.example.com 尽量将API部署在专用域名(会存在跨域问题) https://example.org/api/ API在路径上,简单 版本 URL 如:https://api.example.com/v1/ 代表v

Django REST framework 的TokenAuth认证及外键Serializer基本实现

一,Models.py中,ForeignKey记得要有related_name属性,已实现关联对象反向引用. app_name = models.ForeignKey("cmdb.App",related_name='deploy_app', verbose_name="App") 二,Settings.py文件中,加入对Django REST framework的基本设置. REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSE

Django rest framework 使用自定义认证方式

Django rest framework 使用自定义认证方式 Django使用自定义认证方式 介绍了 "Django使用自定义认证方式",这一篇说说怎样在前一篇的基础上提供rest api. 修改settings.py中INSTALLED_APPS,添加 'login' app. 给login app增加serializers.py文件 #coding:utf-8 from django.contrib.auth.models import User from rest_framew

Django REST framework+Vue 打造生鲜超市(一)

一.项目介绍 1.1.掌握的技术 Vue + Django Rest Framework 前后端分离技术 彻底玩转restful api 开发流程 Django Rest Framework 的功能实现和核心源码分析 Sentry 完成线上系统的错误日志的监控和告警 第三方登录和支付宝支付的集成 本地调试远程服务器代码的技巧 1.2.课程系统构成 vue前端项目 django rest framework 系统实现前台功能 xadmin后台管理系统 vue部分: API 接口 Vue 组件 与a

DRF (Django REST framework) 框架介绍

Web应用模式 在开发Web应用中,有两种应用模式: 前后端不分离 前后端分离 1 前后端不分离 在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高. 这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不再适用于前端App应用,为了对接App后端还需再开发一套接口. 2 前后端分离 在前后端分离的应用模式中,后端仅返