美文网首页
django数据查询-单条数据查询和异常处理

django数据查询-单条数据查询和异常处理

作者: 真是明明 | 来源:发表于2017-12-04 23:01 被阅读225次

    获取单个对象
    上面的例子中filter() 函数返回一个记录集,这个记录集是一个列表。相对列表来说,有些时候我们更需要获取单个的对象, 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."

    相关文章

      网友评论

          本文标题:django数据查询-单条数据查询和异常处理

          本文链接:https://www.haomeiwen.com/subject/kdgfixtx.html