在Python的Django框架中获取单个对象数据的简单方法

yipeiwu_com6年前Python基础

相对列表来说,有些时候我们更需要获取单个的对象, `` get()`` 方法就是在此时使用的:

>>> Publisher.objects.get(name="Apress")
<Publisher: Apress>

这样,就返回了单个对象,而不是列表(更准确的说,QuerySet)。 所以,如果结果是多个对象,会导致抛出异常:

>>> Publisher.objects.get(country="U.S.A.")
Traceback (most recent call last):
  ...
MultipleObjectsReturned: get() returned more than one Publisher --
  it returned 2! Lookup parameters were {'country': 'U.S.A.'}

如果查询没有返回结果也会抛出异常:

>>> Publisher.objects.get(name="Penguin")
Traceback (most recent call last):
  ...
DoesNotExist: Publisher matching query does not exist.

这个 DoesNotExist 异常 是 Publisher 这个 model 类的一个属性,即 Publisher.DoesNotExist。在你的应用中,你可以捕获并处理这个异常,像这样:

try:
  p = Publisher.objects.get(name='Apress')
except Publisher.DoesNotExist:
  print "Apress isn't in the database yet."
else:
  print "Apress is in the database."

相关文章

Tensorflow使用tfrecord输入数据格式

Tensorflow 提供了一种统一的格式来存储数据,这个格式就是TFRecord,上一篇文章中所提到的方法当数据的来源更复杂,每个样例中的信息更丰富的时候就很难有效的记录输入数据中的信...

关于不懂Chromedriver如何配置环境变量问题解决方法

关于不懂Chromedriver如何配置环境变量问题解决方法

今天新学selenium,安装Chromedriver时翻看了许多网上资料,还有很多CSDN大神写的博客,大神们写东西很多都是一笔带过,让我这种新手有点不知所措,弄了好久才弄懂,具体该如...

pytorch中tensor张量数据类型的转化方式

1.tensor张量与numpy相互转换 tensor ----->numpy import torch a=torch.ones([2,5]) tensor([[1.,...

Python3实现发送QQ邮件功能(html)

本文为大家分享了Python3实现发送QQ邮件功能:html,供大家参考,具体内容如下 之前已经成功发送了qq邮件。下面贴出html格式的qq邮件 import smtplib f...

Python中函数参数设置及使用的学习笔记

Python中函数参数设置及使用的学习笔记

一、参数和共享引用: In [56]: def changer(a,b): ....: a=2 ....: b[0]='spam' ....: In [57...