Python Django REST API';获取';功能
我正在学习教程。我遇到过这样的情况:Python Django REST API';获取';功能,python,django,rest,Python,Django,Rest,我正在学习教程。我遇到过这样的情况: def update(self, instance, validated_data): instance.title = validated_data.get('title', instance.title) instance.code = validated_data.get('code', instance.code) instance.linenos = validated_data.get('linenos', i
def update(self, instance, validated_data):
instance.title = validated_data.get('title', instance.title)
instance.code = validated_data.get('code', instance.code)
instance.linenos = validated_data.get('linenos', instance.linenos)
instance.language = validated_data.get('language', instance.language)
instance.style = validated_data.get('style', instance.style)
instance.save()
return instance
这可能是一个非常简单的问题,但是这里的
get
函数是什么?我很难找到关于它的任何文档。我知道有一个get
查询函数,但是这些函数是相同的吗?get
是一个字典方法。
您向它传递一个键,它将返回与该键关联的值。
或者,您还可以将希望它返回的值传递给它,以防字典中缺少键。不必指定默认值(如果键不存在,则返回None),但它会使事情更清楚,即使您不需要
例如:
d={'ciao':1, 'how':2, 'are':3, 'you':4}
my_val = d.get('how', 10)
print 'my_val =', my_val
输出
my_val = 2
my_val = 10
鉴于
my_val = d.get('absent', 10)
print 'my_val =', my_val
输出
my_val = 2
my_val = 10
validated\u data
是一个OrderedDict
和OrderedDict。get(key,default)
是为给定的key获取值的方法,如果dict中缺少key,则返回default
换言之:
instance.title=validated\u数据。get('title',instance.title)
将尝试从已验证的\u数据中提取title
,但如果title
键不在已验证的数据中,则返回当前的instance.title
get与restapi无关
验证的数据是一个字典。可以通过以下方式从字典中提取值
d = some_dictionary
**Method 1:** a = d[key]
**Method 2:** a = d.get(key,custom_value)
在方法1中,如果字典d中存在键,则为a分配一个值。如果钥匙不存在,KeyError将被触发
在方法2
中,如果字典中有键,则为a分配d[key]的值,否则为a分配自定义值。默认情况下,自定义值
为无。因此,即使字典不包含您要查找的键,也不会引发异常
简而言之,方法2是访问字典键的安全方法。get是字典方法