Django(8)ORM单表实例(三)

简介: Django(8)ORM单表实例(三)

- distinct()


  • distinct()方法用于对数据的去重,返回QuerySet数据类型
  • 注意:


  1. 对模型类的对象去重没有意义,因为每个对象都是一个不一样的存在
  2. distinct()一般都是联合values或者values_list使用


  • 实例:


# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="九阴神功",price=200,publish="功夫出版社",pub_date="1777-10-10")  
    books = models.Book.objects.values_list("publish").distinct()
    #books = models.Book.objects.distinct()
    print(books)
    return HttpResponse('<p>查找成功!</p>')
  • 访问测试


9c01cb8798634daeacdc92070d74b2e8.png


a23f0e158d7641b898a845e124544b4b.png


# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="九阴神功",price=200,publish="功夫出版社",pub_date="1777-10-10")  
    #books = models.Book.objects.values_list("publish").distinct()
    books = models.Book.objects.distinct()
    print(books)
    return HttpResponse('<p>查找成功!</p>')

访问测试


950832b4f29a432f9dd17382c059beee.png


32b42c6ccb5b4c0297de254721bb10e7.png


(3)exclude()和filter()的条件查询


  • filter()方法基于双下划线的模糊查询,exclude也是同理
  • 注意:


filter中运算符只能使用等于号:=,不能使用大于、小于号以及其他符号


__in


  • __in用于读取区间,而=后面为列表


# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="九阴神功",price=200,publish="功夫出版社",pub_date="1777-10-10")  
    books = models.Book.objects.filter(price__in=[200,300])
    print(books)
    return HttpResponse('<p>查找成功!</p>')

访问测试


91184a4a29a84fa0886a5e792713555a.png

4c328c252b234956b034609a7570d937.png

__gt


  • __gt大于,=号后面为数字
# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="九阴神功",price=200,publish="功夫出版社",pub_date="1777-10-10")  
    books = models.Book.objects.filter(price__gt=250)
    print(books)
    return HttpResponse('<p>查找成功!</p>')
  • 访问测试

a631fe4b5c044a5d9efba33fb6f5e7ba.png


2a34c16e48f4452db599b0399eea035f.png

__gte


  • __gte大于等于,=号后面为数字


# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="九阴神功",price=200,publish="功夫出版社",pub_date="1777-10-10")  
    books = models.Book.objects.filter(price__gte=300)
    print(books)
    return HttpResponse('<p>查找成功!</p>')
  • 访问测试



7f4dff15afac4c858070c5f619589e38.png

48b449cd2678480b8889d5683214226f.png


__lt


  • __lt小于,=号后面为数字


# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="九阴神功",price=200,publish="功夫出版社",pub_date="1777-10-10")  
    books = models.Book.objects.filter(price__lt=300)
    print(books)
    return HttpResponse('<p>查找成功!</p>')


  • 访问测试

61c7826b6f8d40cab9b2a8ea124fe660.png

f9633a9f8aac43cf8dd62b5594726f3c.png


__lte


  • __lte小于等于,=号后面为数字
# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="九阴神功",price=200,publish="功夫出版社",pub_date="1777-10-10")  
    books = models.Book.objects.filter(price__lte=300)
    print(books)
    return HttpResponse('<p>查找成功!</p>')
  • 访问测试


ee7c46126c5c4f43a845aff13991c481.png

469bf9fb009e41e5bbcfb80be434cecc.png


__range


  • __range在…之间,=号后面为两个元素的列表
# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="九阴神功",price=200,publish="功夫出版社",pub_date="1777-10-10")  
    books = models.Book.objects.filter(price__range=[250,350])
    print(books)
    return HttpResponse('<p>查找成功!</p>')
  • 访问测试

d7680a79da1a401a9018e44ef374f71e.png


641aa7c4faee4a4cb3afce4914fed87e.png


__contains


  • __contains包含,=号后面为字符串


# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="九阴神功",price=200,publish="功夫出版社",pub_date="1777-10-10")  
    books = models.Book.objects.filter(price__contains="金庸")
    print(books)
    return HttpResponse('<p>查找成功!</p>')
  • 访问测试


39c8b44271394e16a4c8d7dd66327d9e.png

6ec81cfd55db4e8e984ba9f958cc8cf4.png


__icontains


  • __icontains包含==(不区分大小写)==,=号后面为字符串
  • 提前增加数据


64c583bfb90e4fd1b5f844353abbbd48.png

  • 修改文件
# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="Python",price=500,publish="Python出版社",pub_date="1970-12-10")  
    books = models.Book.objects.filter(title__icontains="python")
    print(books)
    return HttpResponse('<p>查找成功!</p>')
  • 访问测试

d23b99a8ab09481186ff8c4c906c8eb8.png


f73be50009a34b188fe362ea070450f6.png


__startswith


  • __startswith以指定字符开头,=号后面为字符串


# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="Python",price=500,publish="Python出版社",pub_date="1970-12-10")  
    books = models.Book.objects.filter(title__startswith="P")
    print(books)
    return HttpResponse('<p>查找成功!</p>')


访问测试03c161da8631437f94bafcaa8ef25c3a.png

5e9bde44fb254c57a82357362b75d5bb.png


__endswith


  • __endswith以指定字符结尾,=号后面为字符串
# -*- coding: utf-8 -*-
from statistics import mode
from django.shortcuts import render,HttpResponse
from app1_model import models
def add_book(request):
    #books = models.Book.objects.create(title="Python",price=500,publish="Python出版社",pub_date="1970-12-10")  
    books = models.Book.objects.filter(title__endswith="on")
    print(books)
    return HttpResponse('<p>查找成功!</p>')

访问测试


d0c763285f2341f1815dca468f13fe77.png

5d30a0617ac64f8d9c166a19e7dcdd88.png

目录
相关文章
|
7月前
|
存储 关系型数据库 数据库
Django创建应用、ORM的进阶使用及模型类数据库迁移1
Django创建应用、ORM的进阶使用及模型类数据库迁移1
74 0
|
6月前
|
SQL 关系型数据库 MySQL
Django入门ORM(Django操作MySQL) 专题一
Django入门ORM(Django操作MySQL) 专题一
|
7月前
|
存储 数据可视化 数据库
Django创建应用、ORM的进阶使用及模型类数据库迁移3
Django创建应用、ORM的进阶使用及模型类数据库迁移3
52 0
|
7月前
|
关系型数据库 MySQL 数据库
Django创建应用、ORM的进阶使用及模型类数据库迁移2
Django创建应用、ORM的进阶使用及模型类数据库迁移2
48 0
|
4月前
|
SQL 数据库 开发者
Python Web 开发: 什么是 Django ORM?如何使用它进行数据库操作?
Python Web 开发: 什么是 Django ORM?如何使用它进行数据库操作?
|
1月前
|
SQL API 数据库
一篇文章带你了解Django ORM操作
一篇文章带你了解Django ORM操作
20 0
|
1月前
|
数据采集 存储 数据处理
Python爬虫在Django项目中的数据处理与展示实例
Python爬虫在Django项目中的数据处理与展示实例
|
5月前
|
SQL 关系型数据库 MySQL
07 Django模型 - ORM简介及MySQL数据库的使用
07 Django模型 - ORM简介及MySQL数据库的使用
36 0
|
4月前
|
算法 Docker Python
Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)
Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)
60 0
|
4月前
|
算法 Java Python
Python【算法中心 01】Web框架Django入门(安装+项目创建+应用创建+服务启动)Python搭建算法中心后台实例分享
Python【算法中心 01】Web框架Django入门(安装+项目创建+应用创建+服务启动)Python搭建算法中心后台实例分享
48 0