django ObjectDoesNotExist 和 DoesNotExist的用法

 更新时间:2020年07月09日 14:30:50   作者:空气中的臭氧  
这篇文章主要介绍了django ObjectDoesNotExist 和 DoesNotExist的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

举例吧,这样更容易看的懂。

例1:

from django.core.exceptions import ObjectDoesNotExist
try:
  pe = Plant.objects.get(id=12873)
except ObjectDoesNotExist:
  print "uuuu"
uuuu
# 我随意找了一个id=12873的对象来查询,当然,数据库里没有这个id,可以看到结果正常的打印出来

例2:

try:
  pe = Plant.objects.get(id=12873)
except Plant.DoesNotExist:
  print "rrr"
rrr
# 结果也如期打印,那么来看看model的属性
dir(Plant) 
['DoesNotExist',
 'MultipleObjectsReturned',
 '__class__',
 '__delattr__',
 '__dict__',
 '__doc__',
 ......
# DoesNotExist正在其中

总结:ObjectDoesNotExist 和 DoesNotExist 表达的意思是相同的,只是写法不同,一个需要导入,一个是model的属性,如何使用看大家的个人习惯就好。

补充知识:Django入门:DoesNotExist: User matching query does not exist.

先说说引发该问题的具体代码

User.objects.filter(username='sss').get().username

当在py脚本中使用以上代码进行username是否等于“sss”判断时,如果搜索username的值等于“sss”时,其返回正确的结果,但如果搜索中不存在“sss”时,会返回如标题的错误(DoesNotExist: User matching query does not exist.),程序终止运行。终止运行意味着后面的代码不再被执行,故而得不到自己想要的结果。

由此问题可以延伸到:遇到同类问题可以怎么解决:

可以使用try…except…语句将可能会导致程序终止的语句包涵其中,具体写法如下:

try:
 User.objects.filter(username=username).get().username
except:
 pass

附:try…except…语句是一个用来异常处理用法,即:当所有可能会导致程序异常点都可以使用try…except…引导程序

以上这篇django ObjectDoesNotExist 和 DoesNotExist的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解如何使用Python隐藏图像中的数据

    详解如何使用Python隐藏图像中的数据

    隐写术是在任何文件中隐藏秘密数据的艺术。隐写术的主要目的是隐藏任何文件中的预期信息,而不实际改变文件的外观,即文件外观看起来和以前一样。本文将利用Python实现隐藏图像中的数据,需要的可以参考一下
    2022-02-02
  • python代码实现将列表中重复元素之间的内容全部滤除

    python代码实现将列表中重复元素之间的内容全部滤除

    这篇文章主要介绍了python代码实现将列表中重复元素之间的内容全部滤除,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • python 异步async库的使用说明

    python 异步async库的使用说明

    这篇文章主要介绍了python 异步async库的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python redis存入字典序列化存储教程

    python redis存入字典序列化存储教程

    这篇文章主要介绍了python redis存入字典序列化存储教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • pytorch 修改预训练model实例

    pytorch 修改预训练model实例

    今天小编就为大家分享一篇pytorch 修改预训练model实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python截取字符串的简单方法实例

    Python截取字符串的简单方法实例

    字符串切片也就是截取字符串,取子串,下面这篇文章主要给大家介绍了关于Python截取字符串的简单方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • 100 个 Python 小例子(练习题四)

    100 个 Python 小例子(练习题四)

    这篇文章主要给大家分享100 个 Python 小例子,前文分享了一二三,本文的四十最后一篇了,这篇就把100道python小练习全分享完了,感兴趣的小伙伴也可以去练习前几期内容,洗碗给这几篇文章给你的学习带来帮助
    2022-01-01
  • Python求两点之间的直线距离(2种实现方法)

    Python求两点之间的直线距离(2种实现方法)

    今天小编就为大家分享一篇Python求两点之间的直线距离(2种实现方法),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python 计算一个字符串中所有数字的和实例

    python 计算一个字符串中所有数字的和实例

    今天小编就为大家分享一篇python 计算一个字符串中所有数字的和实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题

    PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题

    这篇文章主要介绍了PyCharm配置KBEngine,解决代码提示冲突、配置命令,本文通过图文并茂的形式给大家介绍的超详细,需要的朋友可以参考下
    2021-04-04

最新评论