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

yipeiwu_com7年前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."

相关文章

关于python写入文件自动换行的问题

现在需要一个写文件方法,将selenium的脚本运行结果写入test_result.log文件中 首先创建写入方法 def write_result(str): writeres...

python实现按行分割文件

本文实例为大家分享了python实现按行分割文件的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python #--*-- coding:utf-8 --*--...

python生成式的send()方法(详解)

随便在网上找了找,感觉都是讲半天讲不清楚,这里写一下。 def generator(): while True: receive=yield 1 print('e...

python word转pdf代码实例

原理 使用python win32 库 调用word底层vba,将word转成pdf 安装pywin32 pip install pywin32 python代码 fr...

Python实现股市信息下载的方法

本文实例讲述了Python实现股市信息下载的方法。分享给大家供大家参考。具体如下: 该程序下载来自yahoo财经的股市信息。 import urllib def getURL(url...