在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实现的视频播放器功能完整示例

本文实例讲述了Python实现的视频播放器功能。分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python3 # --------------...

Python 实现Serial 与STM32J进行串口通讯

Python果然是一款非常简明的语言,做东西非常流畅,今天又尝试了一下用Serial做了一个控制台的串口通讯,我用的下位机是STM32F103,搞了一个多小时就成功了,可见Python的...

python多任务及返回值的处理方法

废话不多说,直接上代码! # coding:utf-8 from multiprocessing import Pool import time def keywords(t...

python解析中国天气网的天气数据

使用方法:terminal中输入复制代码 代码如下:python weather.py http://www.weather.com.cn/weather/101010100.shtml...

使用matplotlib绘制图例标签中带有公式的图

使用matplotlib绘制图例标签中带有公式的图

我就废话不多说了,直接上代码吧! import numpy as np import matplotlib.pyplot as plt x = np.linspace(0,2*np....