django学习阶段小结(一)

1.web应用模式:
前后端分离(json);
前后端不分离

2.序列化和反序列化
序列化:将模型对象转化为json形式。
反序列:将前端接收的json形式转化为模型对象。

3.串行器(Serializer)的功能和作用
功能:序列化和反序列化
作用:串行器允许诸如查询集和模型实例复杂的数据转换为可随后被容易地呈现到机Python数据类型JSON,XML或其他内容类型。序列化程序还提供反序列化,允许在首次验证传入数据后将解析后的数据转换回复杂类型。

4.字段约束
read_only
只读字段包含在API输出中,但在创建或更新操作期间不应包含在输入中。任何错误包含在序列化程序输入中的’read_only’字段都将被忽略。将其设置True为确保在序列化表示时使用该字段,但在反序列化期间创建或更新实例时不使用该字段。默认为 False

write_only
将其设置True为确保在更新或创建实例时可以使用该字段,但在序列化表示时不包括该字段。默认为 False

required
通常,如果在反序列化期间未提供字段,则会引发错误。如果在反序列化期间不需要此字段,则设置为false。

将此设置为False还允许在序列化实例时从输出中省略对象属性或字典键。如果密钥不存在,它将不会包含在输出表示中。

默认为True。

default
如果设置,则给出默认值,如果未提供输入值,将使用该字段。如果未设置,则默认行为是根本不填充该属性。

该default过程中部分更新操作不适用。在部分更新的情况下,只有传入数据中提供的字段将返回一个验证值。

allow_null
通常,如果None传递给序列化程序字段,则会引发错误。将此关键字参数设置为Trueif None应被视为有效值。请注意,如果没有显式default,则设置此参数True将暗示序列化输出的default值null,但不暗示输入反序列化的默认值。默认为 False

source
将用于填充字段的属性的名称。可能是一个只接受self参数的方法,例如URLField(source=‘get_absolute_url’),或者可以使用点分表示来遍历属性,例如EmailField(source=‘user.email’)。使用点分表示法序列化字段时,default如果任何对象不存在或在属性遍历期间为空,则可能需要提供值。

validators
应该应用于传入字段输入的验证程序函数列表,它会引发验证错误或只是返回。验证器函数通常应该提高serializers.ValidationError,但是Django的内置函数ValidationError也支持与Django代码库或第三方Django软件包中定义的验证器兼容。

error_messages
错误消息的错误代码字典。

label
一个简短的文本字符串,可用作HTML表单字段或其他描述性元素中字段的名称。

help_text
一个文本字符串,可用作HTML表单字段或其他描述性元素中字段的描述。

initial
应该用于预先填充HTML表单字段值的值。你可以将一个callable传递给它,就像你对任何常规Django一样Field。

5.序列化的过程中,进行序列化器的初始化问题:(实例化串行器的蚕食问题)
(1)instance存的是从数据库查询出来的数据,用于序列化时候的传参。
(2)data用于反序列化。
(3)如果查询的数据是多个,千万要记住,many=True。

6.验证(validate)
对象级验证:(validate)
可以通过is_validate自动调用。
现象级验证:(validate_name)
对于单个字段进行校验,也是可以通过is_validate。
注意:无论是对象级验证还是对象级验证,都需要将验证的结果抛出。

7.instance和validate_date取值
instance对象,对与对象的取值,用 “.”+模型字段
validate_date:字典,通过字典解决方法来解决。
注意具体什么时候调用update和create问题取决于,在实际化串行器的时候,传递参数的个数问题instance的过程。
总结:不管是创建新对象,还是更新原有的数据,都得经过校验。

8.ModelSerializer
在这里插入图片描述
其优点是:
(1)比普通串行器好,节省代码;
(2)字段不需要去写;
(3)自动生成create()和update()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值