Django Rest Framework - 安装,配置 与 新建 Serialization
来源:互联网 发布:淮阴师范学院网络课程 编辑:程序博客网 时间:2024/04/28 16:34
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 = Party fields = ('id', 'create_date', 'content', 'title', 'address', 'is_off', 'link')
2)指定全部字段
class PartySerializer(serializers.ModelSerializer): class Meta: model = Party fields = '__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 value def validate(self, attrs): print('validate', type(attrs), attrs) if attrs['weight'] > 100: raise serializers.ValidationError('your weight is too fat') return attrs def 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 person def 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 instance class Meta: model = Person fields = ('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
- Django-rest-framework学习(-)Serialization
- python django rest framework Serialization 的学习
- django-rest-framework安装
- django rest framework 入门1-序列化 Serialization
- django rest framework 入门1-序列化 Serialization
- django rest framework 入门1-序列化 Serialization
- Django-Rest-Framework 教程: 1. 序列化 (Serialization)
- django rest framework 入门1-序列化 Serialization
- Django REST framework-教程01-Serialization原创翻译
- Django REST framework
- Django REST framework API
- Django REST framework
- Django-Rest-Framework 教程
- django rest framework Serializer
- Django Rest Framework
- django rest framework quickstart
- Django rest framework
- EditText滑动按钮显示密码,和隐藏密码
- Redis的持久化机制
- LeetCode 169. Majority Element(Java)
- 项目 5 - 利用遍历思想求解图问题(2)
- react-redux的工作流程理解
- Django Rest Framework - 安装,配置 与 新建 Serialization
- 16哈理工新生赛 I 行编辑器 (模拟)
- UVA 11604
- jQuery中each的用法之退出循环和结束本次循环
- 向数组中输入字符串的三种方法
- 排序算法之初级排序
- 编码(2):unicode和utf-8
- android 自定义view属性
- 并发知识与concurrent包