Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
一、序列化组件
① 使用 drf 的序列化组件:
② 在视图中使用序列化的类:
from rest_framework import serializers
class AuthorsSerializer(serializers.Serializer):
name = serializers.CharField()
age = serializers.CharField()
class BookSerializer(serializers.Serializer):
# 返回所有作者信息
authors = serializers.SerializerMethodField()
def get_authors(self, obj):
# 定义一个AuthorsSerializer序列化组件进行序列化
# 这里的obj是一个book对象,所以通过跨表查询obj.authors.all()获取所有的作者,因为有多个作者,这里要指定many=True
authors = AuthorsSerializer(obj.authors.all(), many=True)
return authors.data
二、ModelSerializers 指定表模型
ModelSerializer 类与常规 Serializer 类相同,不同之处在于:
序列化类能够生成一个表示字符串,可以检查其字段的状态。在使用 ModelSerializer 时,只需要确定创建哪些字段和验证器。
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
# 获取指定的字段 fields = ('id','name')
# 获取所有的字段
fields = ('__all__')
# 深度是1,会自动获取所有的需要跨表的信息,1代表跨一张表,官方建议不要超过10,建议不要超过3
depth = 1
# 获取所有除了列出的字段,不能跟fields同时使用
# exclude=['name',]
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有