第五章、Django之模型层---单表操作

一、ORM查询

如果你向查看orm语句内部真正的sql语句有两种方式
1.如果是queryset对象 可以直接点query查看
2.配置文件中 直接配置
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level': 'DEBUG',
},
}}

二、Django测试环境搭建

import os

if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "one_search.settings")
import django
django.setup()
# 你就可以在下面测试django任何的py文件

三、单表查询

必知必会13条
神奇的双下划线查询

1. 增

第一种
models.Book.objects.create(title='西游记',price=123.23,publish_date='2019-10-24')
第二种
from datetime import date
ctime = date.today()
book_obj = models.Book(title='三国演义',price=666.66,publish_date=ctime)
book_obj.save()

2. 改

第一种
models.Book.objects.filter(pk=1).update(price=999.66)
第二种
book_obj = models.Book.objects.filter(pk=1).first()
book_obj.title = '不符合社会主义核心价值观'
book_obj.save()

3. 删

models.Book.objects.filter(pk=1).delete()

4. 查

1.all()  查询所有           返回QuerySet
# res = models.Book.objects.all() # 惰性查询
# print(res)
# for i in res:
# print(i.title)
# 2.filter()                  返回QuerySet
# res = models.Book.objects.filter(pk=2)
# print(res)
# 3.get()				数据对象本身
# 4.first()     拿第一个
# res = models.Book.objects.all()
# print(res)
# print(res.first())
#5. last()     拿最后一个
# res = models.Book.objects.all()
# print(res)
# print(res.last())
# 6.exclude  除此之外        QuerySet
# res = models.Book.objects.exclude(pk=3).filter(pk=4).filter(pk=1).filter(pk=4)
# # # <QuerySet []>
# # print(res)
# 7.values  QuerySet    列表套字典
# res = models.Book.objects.values('title')
# for r in res:
# print(r.get('title'))
# 8.values_list  QuerySet    列表套元组
# res = models.Book.objects.values_list('title')
# print(res)
# 9.count()  统计数据的个数
# res = models.Book.objects.count()
# res1 = models.Book.objects.all().count()
# print(res,res1)
 # 10.distinct() 去重
"""去重:数据必须是一模一样的情况下才能去重"""
# res = models.Book.objects.all().distinct()
# res1 = models.Book.objects.values('title','price').distinct()
# print(res1)
# 11.order_by()
# res = models.Book.objects.order_by('price') # 默认是升序
# # res1 = models.Book.objects.order_by('-price') # 加负号就是降序
# print(res)
# 12.reverse()  前面必须是先结果排序才可以反转
# res = models.Book.objects.order_by('price').reverse()
# print(res)
# 13.exists()  一点卵用没有
# res = models.Book.objects.filter(pk=1).exists()
# print(res)

神奇的双下线查询

# 查询价格大于200的书籍
# res = models.Book.objects.filter(price__gt=200)
# 查询价格小于200的书籍
# res = models.Book.objects.filter(price__lt=200)
# print(res) # 查询价格大于或者等于200的书籍
# res = models.Book.objects.filter(price__gte=200)
# res1 = models.Book.objects.filter(price__lte=200)
# print(res,res1) # 价格是200 或者是123.23 或者666.66
# res = models.Book.objects.filter(price__in=[200,123.23,666.66])
# print(res) # 价格在200 到700之间的书籍
# res = models.Book.objects.filter(price__range=(200,666.66)) # 顾头不顾尾
# print(res)

模糊匹配

"""
like
%
_
"""
# 查询书籍名称中包含p的
# res = models.Book.objects.filter(title__contains='p') # 区分大小写
# print(res)
# 忽略大小写
# res = models.Book.objects.filter(title__icontains='p') # 忽略大小写
# print(res) # 查询书籍名称是以三开头的书籍
# res = models.Book.objects.filter(title__startswith='三')
# res1 = models.Book.objects.filter(title__endswith='P')
# print(res1) # 查询出版日期是2019年的书籍
# res = models.Book.objects.filter(publish_date__year='2019')
# 查询出版日期是10月的书籍
# res = models.Book.objects.filter(publish_date__month='10')

第五章、Django之模型层---单表操作的更多相关文章

  1. 05 Django之模型层---单表操作

    一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  2. Django之模型层-单表操作

    单表操作 添加记录 方式1 # 先实例化models中的对象,按照定义的语句规则传入参数,然后使用对象调用save()保存到数据库 book_obj = Book(id=1,title='python ...

  3. Django之模型层:表操作

    目录 Django之模型层:表操作 一.ORM简介 django测试环境搭建 Django终端打印SQL语句 二 单表操作 2.1 按步骤创建表 2.2记录 三.多表操作 1 创建模型 2 添加.删除 ...

  4. Django模型层-单表操作

    ORM介绍 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...

  5. Django基础(3)----模型层-单表操作,多表创建

    昨日内容回顾: 1. {% include '' %} 2. extend base.html: <html> ..... ..... ..... {% block content%} { ...

  6. Django-5.1 模型层 单表操作

    7.1 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开 ...

  7. python 全栈开发,Day71(模型层-单表操作)

    昨日内容回顾 1. {% include '' %} 2. extend base.html: <html> ..... ..... ..... {% block content%} {% ...

  8. Django之模型---ORM 单表操作

    以上一随笔中创建的book表为例讲解单表操作 添加表记录 方式一 # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象 book_obj=Book.o ...

  9. 06 Django之模型层---多表操作

    一 创建模型 表和表之间的关系 一对一.多对一.多对多 ,用book表和publish表自己来想想关系,想想里面的操作,加外键约束和不加外键约束的区别,一对一的外键约束是在一对多的约束上加上唯一约束. ...

随机推荐

  1. 为Django添加图片验证码

    可直接复制到Django项目中使用 # author:sunshine from django.http import HttpResponse from PIL import Image, Imag ...

  2. ThreadLocal的简单介绍

    ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地 ...

  3. 为什么要设置 Mysql 的 ft_min_word_len=1

    为什么要设置 Mysql 的 ft_min_word_len=1 ? 从 Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4.如果是英文默认值是比较合理的,但是中文 ...

  4. CentOS7.2环境下安装Nginx

    目录 1.下载安装包 2.安装nginx 3.配置nginx开机启动 4.测试 1.下载安装包 官网下载 wget http://nginx.org/download/nginx-1.16.0.tar ...

  5. composer全量镜像使用方法

    原文网址:https://pkg.phpcomposer.com/ Packagist 镜像使用方法 还没安装 Composer 吗?请往下看如何安装 Composer . 镜像用法 有两种方式启用本 ...

  6. 我是如何提高工作效率的-工具篇(一)-Clover

    痛点: 还在为资源管理器窗口切来切去烦恼吗? 效果图: 实现工具:Clover 放个链接 链接:https://pan.baidu.com/s/1UiUQZtE99fMNDe1f2gOnlg   提取 ...

  7. 剑指offer 67. 字符串转换为整数(Leetcode 8. String to Integer (atoi))

    题目:剑指offer 67题 需要考虑的情况:空指针.nullptr.空字符串"".正负号.数值溢出.在写代码的时候对这些特殊的输入都定义好合理的输出.可以定义一个全局布尔型变量g ...

  8. DDE 的知识和使用

    在github上下载.net 版本的NDde 开发包 或者在此处下载开发包 MSDN 地址 创建服务器 class BasicDDE:DdeServer { public BasicDDE(strin ...

  9. HBuilder git使用教程

    1.插件安装 打开HBuilder,工具->插件安装. 等待安装,成功后提示重启后生效,立即重启. 2.在码云上新建一个项目,复制项目地址. 码云地址:https://gitee.com/ 3. ...

  10. Redis 根据Key模糊批量查询数据

    前言 经常会有这样一种业务逻辑,就是需要根据Redis中Key的规则,模糊查询对应的数据,当数据量少时,利用常规的命令也能满足需求,但是数据量大时,就会导致堵塞,就算是采用不堵塞的函数,如果数据需要显 ...