0 结果直接摆上
blank=True, null=True的区别:
a. blank=True 表示该字段可以为空,但必须写
b. null=True 表示该字段可以不写,数据库给该字段保存的是空字符串
前景提要:
a 为了更好的显示blank=True, null=True的区别,我借用djangorestframework来进行说明一下,他里面有一个类似的,看效果就可以,具体用了什么,大家不要在意。
b 他的序列化器默认,所有数据必填,不然就报错
第一,属性介绍:
allow_blank=True # 等价与blank=True
allow_null=True # 等价于null=True
第二,我们开始测试:
1.先测blank=True(allow_blank=True)
图一(写的blank=True的序列化器)
图二(接口测试,试试当name为空的时候,可不可以保存数据到数据库里面,效果显示可以)
图三(查看数据库,我们保存的数据,确实有,name也确实为空,)
小总结:
a 上面我们说了序列化器默认所有的数据必填,如果不填,会报错,这里就不测试了
b 我们给name添加了一个allow_blank=True(相当于blank=True),没有报错,而且数据成功进入了数据库
c 说明,blank=True,就是该字段可以为空
2. 测null=True(allow_null=True)
图一,修改成allow_null=True
图二,同样测试name=”“,看看效果,实际上是报错了,数据并没有保存进数据库
图三(直接把name字段清除,不写,没有报错,且数据库存进去了,返回了数据name="",因为我们没有填,肯定是空字符串)
图四(查看数据库存的数据)
小总结:
a null = True 代表该字段可以不写,数据库给你存一个空字符串
大总结:
blank=True, null=True的区别:
a blank=True 表示该字段可以为空,但必须写
b null=True 表示该字段可以不写,数据库给该字段保存的是空字符串