Django中常用的查询数据方法及查询对象的条件详解

以下是Django中常用的查询数据方法及查询对象的条件详解的完整攻略。

1. 查询数据方法

Django中常用的查询数据方法有两种,分别是:

1.1. .all()

使用 .all() 可以获得一个包含所有对象的 QuerySet,例如:

from myapp.models import MyModel

my_objects = MyModel.objects.all()

这个操作会返回一个包含所有 MyModel 数据库表中的记录的 QuerySet。

1.2. .filter()

如果你想限制返回的QuerySet来匹配一些条件,可以使用 .filter() 方法,例如:

from myapp.models import MyModel

my_objects = MyModel.objects.filter(name='John')

这个操作会返回一个 MyModel 数据库表中所有 name 字段为 'John' 的记录的 QuerySet。

2. 查询对象的条件详解

使用 .all().filter() 方法是常规查询的常见方法,它们可以满足绝大多数的需求。然而,如果你需要更精确的查询,你可以使用下面的查询对象的条件:

2.1. 等于

查询特定的对象,可以使用等于号(=),例如:

from myapp.models import MyModel

my_object = MyModel.objects.get(id=1)

这个操作会返回一个 MyModel 数据库表中 id 字段等于 1 的记录的 QuerySet。

2.2. 包含

检查对象中包含给定元素可以使用 contains 方法。例如:

from myapp.models import MyModel

my_objects = MyModel.objects.filter(name__contains='John')

这个操作会返回一个 MyModel 数据库表中所有包含 'John' 的 name 字段的记录的 QuerySet。

2.3. 前缀和后缀

想要检查对象中开头或结尾是否包含给定元素可以使用 startsWith 和 endsWith 方法。

from myapp.models import MyModel

my_objects = MyModel.objects.filter(name__startsWith='Jo')

这个操作会返回一个 MyModel 数据库表中所有 name 字段以 'Jo' 开头的记录的 QuerySet。

from myapp.models import MyModel

my_objects = MyModel.objects.filter(name__endsWith='hn')

这个操作会返回一个 MyModel 数据库表中所有 name 字段以 'hn' 结尾的记录的 QuerySet。

2.4. 大小写敏感性

使用 icontains()iexact()istartswith()等方法可以忽略大小写的查询。

示例说明

下面是一个使用了上述查询条件的示例:

from myapp.models import MyModel

my_objects = MyModel.objects.filter(name__icontains='john').exclude(age__lt=21).order_by('last_name', '-first_name')

这个操作会返回一个 MyModel 数据库表中所有包含 'john' 字符串的 name 字段,并且年龄大于等于21岁的记录的 QuerySet。这个结果集会按照 last_name 字段升序和 first_name 字段降序排列。

另一个示例:

from myapp.models import MyModel

my_objects = MyModel.objects.filter(name__startswith='Jo').exclude(age__gt=35, age__lt=40)

这个操作会返回一个 MyModel 数据库表中所有的 name 字段以 'Jo' 开头,并且年龄小于等于35或大于等于40岁的记录的 QuerySet。

以上就是关于 Django 中常用的查询数据方法及查询对象的条件详解,希望能够帮助到你!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django中常用的查询数据方法及查询对象的条件详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django-权限信息自定义标签

    自定义权限标签: import re from django.template import Library from django.conf import settings register = Library() @register.inclusion_tag(“rbac/xxxxx.html”) def menu_html(request): “”” …

    Django 2023年4月16日
    00
  • Django Admin 删除文件同时删除资源文件(delete_upload_files)

    一  使用环境   开发系统: windows   IDE: pycharm     数据库: msyql,navicat   编程语言: python3.7  (Windows x86-64 executable installer)   虚拟环境: virtualenvwrapper   开发框架: Django 2.2 二 Django Admin 删…

    Django 2023年4月13日
    00
  • django admin 编辑页面(change page) 自定义字段, 展示数据

    最近遇到一个需求, 需要在django 的 admin 编辑页内展示由用户上传的进行反馈的图片, 还要支持点击查看原图, 所以需要在编辑页内自定义 img 标签及 a 标签进行图片的展示及点击跳转   import json from django.contrib import admin from django.utils.safestring impor…

    Django 2023年4月9日
    00
  • 【Python web 开发】social_django 集成第三方登录

     1、背景: 我们之前写的一些接口仅仅是知道微博授权的一个流程,要把第三方授权登录的用户的user_id  弄到我们的user_profile 中来才是 符合业务的需求的 因此gitbub上已经有一些开源的第三方插件使用 social_app_django     social-auth-app-django模块是专门用于Django的第三方登录OAuth2…

    Django 2023年4月12日
    00
  • 详解Django之auth模块(用户认证)

    下面我将详细讲解“详解Django之auth模块(用户认证)”的完整攻略,并且会包含两条示例说明,其内容如下: 详解Django之auth模块(用户认证) 什么是Django auth模块? Django auth是Django的一个内置模块,用于提供用户认证、用户组、权限等功能。它提供了一组可重用的视图和模板,可以快速构建用户注册、登录、注销等功能。在Dj…

    Django 2023年5月16日
    00
  • django 的 MTV 流程图

         

    Django 2023年4月12日
    00
  • Django 在admin中自定义app名

    前提条件,注册时是: 完整的注册,不是直接用app名进行注册 INSTALLED_APPS = [ ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’…

    Django 2023年4月11日
    00
  • SmartChart配合Django的安装与使用

    SmartChart的Git地址:https://gitee.com/smartchart/smartchart 在这里我只能说一句话 SmartChart开发团队真厉害 配合Django来使用SmartChart 安装smartchart,Python版本>=3.6,Django>=2.0SmartChart和我们的admin是有关联的,我们可…

    Django 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部