• <legend id='3ThJQ'><style id='3ThJQ'><dir id='3ThJQ'><q id='3ThJQ'></q></dir></style></legend><tfoot id='3ThJQ'></tfoot>

        <i id='3ThJQ'><tr id='3ThJQ'><dt id='3ThJQ'><q id='3ThJQ'><span id='3ThJQ'><b id='3ThJQ'><form id='3ThJQ'><ins id='3ThJQ'></ins><ul id='3ThJQ'></ul><sub id='3ThJQ'></sub></form><legend id='3ThJQ'></legend><bdo id='3ThJQ'><pre id='3ThJQ'><center id='3ThJQ'></center></pre></bdo></b><th id='3ThJQ'></th></span></q></dt></tr></i><div id='3ThJQ'><tfoot id='3ThJQ'></tfoot><dl id='3ThJQ'><fieldset id='3ThJQ'></fieldset></dl></div>
          <bdo id='3ThJQ'></bdo><ul id='3ThJQ'></ul>
      1. <small id='3ThJQ'></small><noframes id='3ThJQ'>

        Django中get()和filter()返回值区别详解

        时间:2023-12-07
          <bdo id='ttIbJ'></bdo><ul id='ttIbJ'></ul>
              1. <i id='ttIbJ'><tr id='ttIbJ'><dt id='ttIbJ'><q id='ttIbJ'><span id='ttIbJ'><b id='ttIbJ'><form id='ttIbJ'><ins id='ttIbJ'></ins><ul id='ttIbJ'></ul><sub id='ttIbJ'></sub></form><legend id='ttIbJ'></legend><bdo id='ttIbJ'><pre id='ttIbJ'><center id='ttIbJ'></center></pre></bdo></b><th id='ttIbJ'></th></span></q></dt></tr></i><div id='ttIbJ'><tfoot id='ttIbJ'></tfoot><dl id='ttIbJ'><fieldset id='ttIbJ'></fieldset></dl></div>

                1. <tfoot id='ttIbJ'></tfoot>

                  <small id='ttIbJ'></small><noframes id='ttIbJ'>

                  <legend id='ttIbJ'><style id='ttIbJ'><dir id='ttIbJ'><q id='ttIbJ'></q></dir></style></legend>
                    <tbody id='ttIbJ'></tbody>

                  Django中get()和filter()返回值区别详解

                  在Django的ORM中,经常会用到get()和filter()方法来获取数据库中的数据。这两个方法都可以根据指定的查询条件来获取满足条件的数据。但是它们返回的结果是有所差别的,下面我们来详细看一下它们的区别。

                  get()方法

                  get()方法用于获取满足条件的单个对象,如果查询条件返回多个对象或者没有找到匹配的对象,都会抛出DoesNotExist或MultipleObjectsReturned异常。如果查询成功,将返回一个对象实例。如果没有匹配到任何对象,则会抛出DoesNotExist异常,代码可以像下面这样实现:

                  try:
                      article = Article.objects.get(title=title)
                  except Article.DoesNotExist:
                      # 处理Article对象不存在的异常
                  

                  如果你不想处理这个异常,可以使用下面的方法来获取:

                  article = Article.objects.filter(title=title).first()
                  

                  这种方式如果没有匹配到任何对象,将返回None。

                  filter()方法

                  filter()方法用于获取满足条件的多个对象,它的返回值是一个QuerySet对象,即使没有找到任何对象,也不会引发异常,它返回的对象在使用时和列表对象类似。这个QuerySet对象是可以进行迭代的,因此,你可以像处理列表对象一样处理它:

                  articles = Article.objects.filter(author='Tom')
                  for article in articles:
                      print(article.title)
                  

                  你也可以像使用列表那样对QuerySet进行切片、排序等操作:

                  articles = Article.objects.filter(author='Tom').order_by('title')[:10]
                  

                  区别总结

                  • get()方法返回单个对象,如果查询到多个对象或者没有找到对象,则会抛出异常。
                  • filter()方法返回QuerySet对象,它可以包含多个对象,即使查询到0个对象也不会抛出异常。

                  上面我们用几个简单的示例来说明了get()和filter()方法的区别,在实际应用中,它们具体的使用方式会更加复杂。在选择使用哪个方法时,需要根据具体的需求来判断。

                  上一篇:一文详解Java中Stream流的使用 下一篇:springboot项目启动后执行方法的三种方式

                  相关文章

                  <i id='afq8O'><tr id='afq8O'><dt id='afq8O'><q id='afq8O'><span id='afq8O'><b id='afq8O'><form id='afq8O'><ins id='afq8O'></ins><ul id='afq8O'></ul><sub id='afq8O'></sub></form><legend id='afq8O'></legend><bdo id='afq8O'><pre id='afq8O'><center id='afq8O'></center></pre></bdo></b><th id='afq8O'></th></span></q></dt></tr></i><div id='afq8O'><tfoot id='afq8O'></tfoot><dl id='afq8O'><fieldset id='afq8O'></fieldset></dl></div>
                  <tfoot id='afq8O'></tfoot>

                  1. <legend id='afq8O'><style id='afq8O'><dir id='afq8O'><q id='afq8O'></q></dir></style></legend>
                    • <bdo id='afq8O'></bdo><ul id='afq8O'></ul>

                  2. <small id='afq8O'></small><noframes id='afq8O'>