Django Rest Framework - 安装,配置 与 新建 Serialization
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,
}
属性说明:
比如说 这个序列化中 有name
, weight
, 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相关推荐
- JDK+JAVA+TOMCAT+MAVEN+IDEA的安装配置以及新建项目
一:JDK 1.下载 这里下载的是jdk-7u80(即版本是jdk1.7),官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads ...
- django restful 请求_利用 Django REST framework 构建 RESTful Web API
利用 Django REST framework 构建 RESTful Web API 终于到了动手操作的环节啦,这一节,我们以师生管理系统为例,带领大家搭建一套 framework Web API. ...
- 服务器搭建hue_Hue安装配置实践
Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的.通过使用 ...
- Windows 下 Anaconda3 的安装配置
Windows 下 Anaconda3 的安装配置 我的小站.Github Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项. 目录 ...
- python中如何安装django库_python安装好django库,新建django项目
我安装好django库之后,想在pycharm里新建django项目,发现没有django选项.百度后发现只有专业版才可以直接创建django项目,社区版推荐用命令创建,如下: 1. 在DOS黑窗口下 ...
- Celery在Django下安装配置
Celery(芹菜)安装配置过程 环境:win10 64:python 3.6.0:Django 2.0.3redis-3.2 开发工具:pycharm 安装包:celery,django-celer ...
- django 基础安装配置流程
1.django各个版本的兼容关系: 图片来源:Django 版本和 Python 版本的对照关系_化雨随风的博客-CSDN博客_django和python版本对应 我选择的是django3.2.9版 ...
- 怎么检查python是否安装成功-检查python以及django是否安装配置成功
首先说明下,我使用pycharm作为开发的IDE,在第一次创建django项目的时候,会自动安装django包的.(网上也有很多单独安装的方法),环境变量配置成功后,就是用下面的方法检测安装成功与否. ...
- Python3 环境搭建、pycharm安装配置详解、新建Python项目(新手小白版Windows系统)
Python3 环境搭建 .pycharm安装配置详解 window系统上环境搭建: 一.环境搭建,下载Python (Python 3.8为例) 二.pycharm的下载与安装 window系统上环 ...
最新文章
- JSON 是个什么??!!!
- 福利来了!国内TOP3的超级云计算,免费领2000核时计算资源!
- 参赛作品介绍 | IM体感游戏、校园管家...这些创意颠覆你的想象!
- 复合火焰探测传感器_火灾探测器分类
- 当AV1视频编解码器来到Webex!
- sql 临时表_原创 | SQL优化之合理使用临时表
- 抗击海冰 地理信息系统来帮忙
- docker下载tomact
- Codeforces Round #450 (Div. 2)D. Unusual Sequences[数论][组合数学][dp II]
- activiti自定义_在Activiti中执行自定义查询
- linux对当前使用的分区分割,实例解说Linux中fdisk分区使用方法
- 使用Git推送代码到GitHub远程仓库
- 16.1117 NOIP 模拟赛
- main在c语言中的作用,main函数在C语言中是怎么定义的?有什么作用?
- 论文笔记_S2D.51_2016-IEEE TOR_Past, Present, and Future of Simultaneous Localization and Mapping
- set nocount on的疑问 set nocount on作用 set nocount on什么意思
- 回旋加速器和同步加速器的区别
- 2021大数据白皮书 附下载
- preview一直不显示,无法和代码同步变化
- 教你轻松创建谷歌账号、谷歌邮箱!