1.安装

安装 Rest FrameWork 使用的是 pip 安装, Linux 与 Mac OS可以 安装pip进行直接操作下面命令:

pip install djangorestframework #安装框架

windows 的话,可以通过 Anaconda 中的pip命令进行安装配置;

包管理工具安装可以看:

windows 下安装 anaconda 与 linux 下安装pip配置


2.配置

mysite/setting.py

配置INSTALLED_APPS

INSTALLED_APPS = [...'rest_framework', #配置 rest_framework app...
]

e.g

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','testapp','testrestapi','rest_framework', #配置 rest_framework app
]

好吧,配置如此简单。更多 REST_FRAMEWORK 的配置 将在后面使用到的时候,进行列举。


3. 开启api工程

api工程 和django中的app一样,使用命令新建即可。

比如我们新建 名为 testrestapi 的 app:

python manage.py startapp testrestapi #新建app

更多内容 : Django - 创建工程 和 APP 与 开发工具,别忘记在 setting.py 和 urls.py 中进行配置。


4. 新建model

testrestapi/model.py

新建实体 Party ,添加ordering 以 创建日期排序;

class Party(models.Model):create_date = models.DateTimeField(auto_now_add=True)content = models.TextField()title = models.CharField(max_length=50, default='this is a party')address = models.CharField(max_length=50, default="ShangHai")is_off = models.BooleanField(default=False)link = models.CharField(max_length=200, default="http://www.baidu.com")class Meta:ordering = ('create_date',)

4. 新建Serializer

在testrestapi 下新建 serializer.py ,实现 PartySerializer

testrestapi/serializer.py

Serializer 实现,这里列举2种简单的实现方式: 继承 ModelSerializer

1)指定部分字段

class PartySerializer(serializers.ModelSerializer):class Meta:model = Partyfields = ('id', 'create_date', 'content', 'title', 'address', 'is_off', 'link')

2)指定全部字段

class PartySerializer(serializers.ModelSerializer):class Meta:model = Partyfields = '__all__'

5. Serializer 进阶

这里以Person及其Serializer进行说明

实体 Person

class Person(models.Model):name = models.CharField(max_length=20, default='Lao')weight = models.FloatField()height_cm = models.IntegerField()

序列化 Person1Serializer

class Person1Serializer(serializers.ModelSerializer):name = serializers.CharField(max_length=20)weight = serializers.FloatField()height = serializers.IntegerField()# validate_fieId : 验证name是否符合需求def validate_name(self, value):print('validate_name', type(value), value)return valuedef validate(self, attrs):print('validate', type(attrs), attrs)if attrs['weight'] > 100:raise serializers.ValidationError('your weight is too fat')return attrsdef create(self, validated_data):print('create', type(validated_data), validated_data)height = validated_data['height']weight = validated_data['weight']name = validated_data['name']print(height)person = Person(name=name, weight=weight, height=height)person.save()return persondef update(self, instance, validated_data):print('update', type(instance), instance, validated_data)instance.name = validated_data.get('name', instance.name)instance.weight = validated_data.get('weight', instance.weight)instance.height_cm = validated_data.get('height', instance.height_cm)instance.save()return instanceclass Meta:model = Personfields = ('name', 'weight', 'height')

提交的json

Content - type : application/json

{"name": "test","weight": 123,"height": 12,
}

属性说明:

比如说 这个序列化中 有nameweight , height 三个属性,必须对应的是Class Meta中的fieIds中的固定值,而fieIds最好与表单中的或json中提交的参数一致,当然还有实体中的属性,见上面的Person实体PsersonSerializer提交的 Json

方法说明 :

  • validate_fieId 可以验证某个字段是否符合条件
  • validate 通过attrs参数,可以拿到表单或json提交的数据,以验证数据
  • create 方法 可以进行查询/存储操作 ,参数 validated_data 是验证后的数据
  • update 执行修改的时候将要执行操作 参数 validated_data 是验证后的数据 ,instance 是model对应的实体

6. 总结

参考 : Tutorial 1: Serialization

源码 : django-mysite-frist

Django Rest Framework - 安装,配置 与 新建 Serialization相关推荐

  1. JDK+JAVA+TOMCAT+MAVEN+IDEA的安装配置以及新建项目

    一:JDK 1.下载 这里下载的是jdk-7u80(即版本是jdk1.7),官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads ...

  2. django restful 请求_利用 Django REST framework 构建 RESTful Web API

    利用 Django REST framework 构建 RESTful Web API 终于到了动手操作的环节啦,这一节,我们以师生管理系统为例,带领大家搭建一套 framework Web API. ...

  3. 服务器搭建hue_Hue安装配置实践

    Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的.通过使用 ...

  4. Windows 下 Anaconda3 的安装配置

    Windows 下 Anaconda3 的安装配置 我的小站.Github Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项. 目录 ...

  5. python中如何安装django库_python安装好django库,新建django项目

    我安装好django库之后,想在pycharm里新建django项目,发现没有django选项.百度后发现只有专业版才可以直接创建django项目,社区版推荐用命令创建,如下: 1. 在DOS黑窗口下 ...

  6. Celery在Django下安装配置

    Celery(芹菜)安装配置过程 环境:win10 64:python 3.6.0:Django 2.0.3redis-3.2 开发工具:pycharm 安装包:celery,django-celer ...

  7. django 基础安装配置流程

    1.django各个版本的兼容关系: 图片来源:Django 版本和 Python 版本的对照关系_化雨随风的博客-CSDN博客_django和python版本对应 我选择的是django3.2.9版 ...

  8. 怎么检查python是否安装成功-检查python以及django是否安装配置成功

    首先说明下,我使用pycharm作为开发的IDE,在第一次创建django项目的时候,会自动安装django包的.(网上也有很多单独安装的方法),环境变量配置成功后,就是用下面的方法检测安装成功与否. ...

  9. Python3 环境搭建、pycharm安装配置详解、新建Python项目(新手小白版Windows系统)

    Python3 环境搭建 .pycharm安装配置详解 window系统上环境搭建: 一.环境搭建,下载Python (Python 3.8为例) 二.pycharm的下载与安装 window系统上环 ...

最新文章

  1. JSON 是个什么??!!!
  2. 福利来了!国内TOP3的超级云计算,免费领2000核时计算资源!
  3. 参赛作品介绍 | IM体感游戏、校园管家...这些创意颠覆你的想象!
  4. 复合火焰探测传感器_火灾探测器分类
  5. 当AV1视频编解码器来到Webex!
  6. sql 临时表_原创 | SQL优化之合理使用临时表
  7. 抗击海冰 地理信息系统来帮忙
  8. docker下载tomact
  9. Codeforces Round #450 (Div. 2)D. Unusual Sequences[数论][组合数学][dp II]
  10. activiti自定义_在Activiti中执行自定义查询
  11. linux对当前使用的分区分割,实例解说Linux中fdisk分区使用方法
  12. 使用Git推送代码到GitHub远程仓库
  13. 16.1117 NOIP 模拟赛
  14. main在c语言中的作用,main函数在C语言中是怎么定义的?有什么作用?
  15. 论文笔记_S2D.51_2016-IEEE TOR_Past, Present, and Future of Simultaneous Localization and Mapping
  16. set nocount on的疑问 set nocount on作用 set nocount on什么意思
  17. 回旋加速器和同步加速器的区别
  18. 2021大数据白皮书 附下载
  19. preview一直不显示,无法和代码同步变化
  20. 教你轻松创建谷歌账号、谷歌邮箱!

热门文章

  1. Revit二开之Transform
  2. Git push 失败:Empty reply from server 解决方法
  3. RPA技术在商业银行数字化转型中的应用初探
  4. 常用硬盘数据恢复软件的功能解析
  5. aac转化为mp3,aac转mp3方法
  6. 带你轻松玩转统计图~
  7. CAD二次开发 插件初始化接口IExtensionApplication
  8. 在windows 7 建立一个弹出光驱的快捷方式
  9. QCC51XX---Earbud启动流程分析
  10. 成都来自“星星”的教授