django rest framework之序列化

首先找到models文件,然后里面写上内容,自定义

class UserGroup(models.Model):
    title = models.CharField(max_length=32)

class UserInfo(models.Model):
    name = models.CharField(verbose_name="姓名",max_length=255)
    age = models.IntegerField(verbose_name="年龄")
    choice = (
        (1, ‘男人‘),
        (2, ‘女人‘),
        (3, ‘其他‘)
    )
    sex = models.IntegerField(verbose_name="性别",choices=choice)
    address = models.CharField(verbose_name="地址",max_length=255)
    ug = models.ForeignKey(UserGroup,default=1,on_delete=models.CASCADE)

然后同步数据库,然后往数据库里这两张表添加内容,完毕之后回到视图函数,里面写上代码逻辑,首先定义一个序列化类

from rest_framework import serializers
"""
先要创建一个类继承Serializers
"""
class UserSerializers(serializers.Serializer):
    """序列化字段和数据库必须一样"""
    name = serializers.CharField()
    age = serializers.CharField()
    sex = serializers.IntegerField()
    address = serializers.CharField()
    # source 来源于,就是让页面不再显示对象而是数据库的字段
    ug = serializers.CharField(source=‘ug.title‘)

接下来开始写逻辑代码

from rest_framework import views
from rest_framework.views import Response
from app1 import models

class SerializersViews(views.APIView):
    def get(self,request,*args,**kwargs):
        # user_list = models.UserInfo.objects.filter()
        user_list = models.UserInfo.objects.filter()
        # 选择序列化类,如果是多个,many=True,如果是单个,many=False
        sls = UserSerializers(instance=user_list,many=True)
        # sls = UserSerializers(instance=user_list,many=False)
        # sls.data 已经序列化数据库所需字段
        return Response(sls.data)

完整代码如下:

from django.shortcuts import render,HttpResponse
from rest_framework import views
from rest_framework import serializers
from rest_framework.views import Response
from app1 import models
# Create your views here.
"""
先要创建一个类继承Serializers
"""
class UserSerializers(serializers.Serializer):
    """序列化字段和数据库必须一样"""
    name = serializers.CharField()
    age = serializers.CharField()
    sex = serializers.IntegerField()
    address = serializers.CharField()
    # source 来源于,就是让页面不再显示对象而是数据库的字段
    ug = serializers.CharField(source=‘ug.title‘)

class SerializersViews(views.APIView):
    def get(self,request,*args,**kwargs):
        # user_list = models.UserInfo.objects.filter()
        user_list = models.UserInfo.objects.filter()
        # 选择序列化类,如果是多个,many=True,如果是单个,many=False
        sls = UserSerializers(instance=user_list,many=True)
        # sls = UserSerializers(instance=user_list,many=False)
        # sls.data 已经序列化数据库所需字段
        return Response(sls.data)

完整代码

写完之后,在你的urls里面写上

from django.contrib import admin
from django.urls import path
from app1 import views

urlpatterns = [
    path(‘admin/‘, admin.site.urls),
    path(‘Serializers/‘, views.SerializersViews.as_view()), # 添加这一行
]

之后在你的配置文件中

INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘app1.apps.App1Config‘,
    ‘rest_framework‘, # 配置上
]

好了,上面完成之后,直接启动系统,网页输入url可以看到内容了,不知道为啥无法粘贴图片了,看代码吧

[
    {
        "name": "陈晨",
        "age": "20",
        "sex": 1,
        "address": "河北邯郸",
        "ug": "A组"
    },
    {
        "name": "付霞",
        "age": "15",
        "sex": 2,
        "address": "甘肃庆阳",
        "ug": "B组"
    }
]

这是用postman测试的,可以看到已经把数据json好了

原文地址:https://www.cnblogs.com/ArkhamKnight/p/9429695.html

时间: 2024-10-08 21:53:37

django rest framework之序列化的相关文章

Django Rest Framework(2)-----序列化详解(serializers)

REST framework中的序列化类与Django的Form和ModelForm类非常相似.我们提供了一个Serializer类,它提供了一种强大的通用方法来控制响应的输出,以及一个ModelSerializer类,它为创建处理模型实例和查询集的序列化提供了有效的快捷方式. Serializers 序列化器允许把像查询集和模型实例这样的复杂数据转换为可以轻松渲染成JSON,XML或其他内容类型的原生Python类型.序列化器还提供反序列化,在验证传入的数据之后允许解析数据转换回复杂类型.不仅

Django REST framework之序列化组件以及源码分析+全局、局部Hook

序列化两大功能 a.对queryset类型进行序列化 b.对用户请求的数据进行校验 a.对queryset类型进行序列化 举例说明: 表设计 1 from django.db import models 2 3 4 class UserGroup(models.Model): 5 title = models.CharField(max_length=32) 6 7 8 class UserInfo(models.Model): 9 user_type_choices = ( 10 (1, '普

DRF(Django Rest Framework)序列化组件接口使用和接口设计--!GET接口设计!

定义序列化器(本质就是一个类),一般包括模型类的字段,有自己的字段类型规则.实现了序列化器后,就可以创建序列化对象以及查询集进行序列化操作,通过序列化对象.data来获取数据(不用自己构造字典,再返回Json数据) INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.me

1、Django REST framework 理解

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

轻轻松松学会 DRF Django REST framework

DRF Django REST framework 之 APIView(一) DRF Django REST framework 之 解析器(二) DRF Django REST framework 之 序列化(三) DRF Django REST framework 之 视图组件(四) 持续更新中.... 原文地址:https://www.cnblogs.com/pungchur/p/12028316.html

Django Rest framework序列化流程

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

Django Rest Framework --- 序列化组件

一.序列化组件的作用 在前后端分离开发时,前端与后端用来交互的数据的格式是一致的(数据格式为字符串的json数据),于是后端程序员在传递数据时,便要将数据封装成符合格式的数据,如果不借助方法,手动进行数据封装,会非常的浪费时间,在Django rest framework中的序列化组件帮我们解决了这个问题. 二.Django自带的序列化组件 from django.core import serializers def test(request): book_list = Book.object

Django REST framework序列化

Django REST framework序列化 开发我们的Web API的第一件事是为我们的Web API提供一种将代码片段实例序列化和反序列化为诸如json之类的表示形式的方式 models部分 from django.db import models class Book(models.Model): title = models.CharField(max_length=32) price = models.IntegerField() pub_date = models.DateFie

利用 Django REST framework 编写 RESTful API

利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framework 真乃一大神器,可以轻易的甚至自动化的搞定很多事情,比如: 自动生成符合 RESTful 规范的 API 支持 OPTION.HEAD.POST.GET.PATCH.PUT.DELETE 根据 Content-Type 来动态的返回数据类型(如 text.json) 生成 browserable