在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."

相关文章

Android基于TCP和URL协议的网络编程示例【附demo源码下载】

Android基于TCP和URL协议的网络编程示例【附demo源码下载】

本文实例讲述了Android基于TCP和URL协议的网络编程。分享给大家供大家参考,具体如下: 手机本身是作为手机终端使用的,因此它的计算能力,存储能力都是有限的。它的主要优势是携带方便...

Python字符串处理实现单词反转

Python字符串处理学习中,有一道简单但很经典的题目,按照单词对字符串进行反转,并对原始空格进行保留: 如:‘ I love China! ‘ 转化为:‘ China! love...

详解Python 切片语法

Python的切片是特别常用的功能,主要用于对列表的元素取值。使用切片也会让你的代码显得特别Pythonic。 切片的主要声明如下,假设现在有一个list,命名为alist: alist...

Flask框架踩坑之ajax跨域请求实现

Flask框架踩坑之ajax跨域请求实现

业务场景: 前后端分离需要对接数据接口。 接口测试是在postman做的,今天才开始和前端对接,由于这是我第一次做后端接口开发(第一次嘛,问题比较多)所以在此记录分享我的踩坑之旅,以便能...

谈谈Python中的while循环语句

谈谈Python中的while循环语句

前言 python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得...