django之单表操作
- 1.查询方法:
- <1> all(): 查询所有结果
- <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
- <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
- <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象
- <5> order_by(*field): 对查询结果排序('-id')
- <6> reverse(): 对查询结果反向排序
- <8> count(): 返回数据库中匹配查询(QuerySet)的对象数量。
- <9> first(): 返回第一条记录
- <10> last(): 返回最后一条记录
- <11> exists(): 如果QuerySet包含数据,就返回True,否则返回False
- <12> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
- model的实例化对象,而是一个可迭代的字典序列
- <13> values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
- <14> distinct(): 从返回结果中剔除重复纪录
- 2.双下划綫之模糊查询:
- <1> all(): 查询所有结果
- <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
- <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
- <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象
- <5> order_by(*field): 对查询结果排序('-id')
- <6> reverse(): 对查询结果反向排序
- <8> count(): 返回数据库中匹配查询(QuerySet)的对象数量。
- <9> first(): 返回第一条记录
- <10> last(): 返回最后一条记录
- <11> exists(): 如果QuerySet包含数据,就返回True,否则返回False
- <12> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
- model的实例化对象,而是一个可迭代的字典序列
- <13> values_list(*field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
- <14> distinct(): 从返回结果中剔除重复纪录
- 单表查询练习
- import os
- if __name__ == '__main__':
- os.environ.setdefault("DJANGO_SETTINGS_MODULE", "template_import.settings")
- import django
- django.setup()
- from template001 import models
- book = models.Book.objects.create(name='红楼梦', price=23.8, publish='人民出版社', author='曹雪芹', create_data='2018-09-17')
- book = models.Book.objects.create(name='红楼梦', price=23.8, publish='人民出版社', author='曹雪芹', create_data='2018-09-17')
- import datetime
- ctime = datetime.datetime.now()
- book = models.Book.objects.create(name='西游记', price=100, publish='北京出版社', author='吴承恩', create_data=ctime)
- ret = models.Book.objects.all()
- print(ret)
- #
- #
- # 查询老男孩出版社出版过的价格大于200的书籍
- book = models.Book.objects.filter(price__gt='',publish='老男孩出版社')
- print(book)
- #
- # 查询2017年8月出版的所有以py开头的书籍名称
- book = models.Book.objects.filter(name__startswith='py',create_data__range=['2018-08-01','2018-08-31'])
- print(book)
- #
- # 查询价格为50, 100
- # 或者150的所有书籍名称及其出版社名称
- book = models.Book.objects.filter(price__in=['',''])
- book2 = models.Book.objects.filter(price=150).values('name','price')
- print(book)
- print(book2)
- #
- # 查询价格在100到200之间的所有书籍名称及其价格
- book = models.Book.objects.filter(price__range=[100, 200]).values('name','price')
- print(book)
- #
- # 查询所有人民出版社出版的书籍的价格(从高到低排序,去重)
- book = models.Book.objects.filter(publish='人民出版社').order_by('-price')
- print(book)
- #
- # 查找所有书名里包含楼的书
- book = models.Book.objects.filter(name__contains='楼')
- print(book)
- #
- # 查找出版日期是2017年的书
- book = models.Book.objects.filter(create_data__year='')
- print(book)
- #
- # 查找出版日期是2017年的书名
- book = models.Book.objects.filter(create_data__year='').values('name')
- print(book)
- #
- # 查找价格大于10元的书
- print('-----------')
- book = models.Book.objects.filter(price__gt='')
- print(book)
- #
- # 查找价格大于10元的书名和价格
- book = models.Book.objects.filter(price__gt='').values('name','price')
- print(book)
django之单表操作的更多相关文章
- django第8天(在测试文件中运行django项目|单表操作)
django第8天 在测试文件中运行django项目 1.将项目配置文件数据库该为mysql,修改配置信息 PORT = '127.0.0.1' DATABASES = { 'default': { ...
- django ORM单表操作
1.ORM介绍 ORM是“对象-关系-映射”的简称 映射关系: mysql---------Python 表名----------类名 字段----------属性 表记录--------实例化对象 ...
- Django学习笔记(7)——单表操作和多表操作
单表操作 1,创建模型 创建名为book的APP,在book下的models.py中创建模型: from django.db import models # Create your models he ...
- web框架开发-Django模型层(1)之ORM简介和单表操作
ORM简介 不需要使用pymysql的硬编码方式,在py文件中写sql语句,提供更简便,更上层的接口,数据迁移方便(有转换的引擎,方便迁移到不同的数据库平台)…(很多优点),缺点,因为多了转换环节,效 ...
- Django模型层-单表操作
ORM介绍 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...
- Django单表操作
一.数据库相关设置 配置ORM的loggers日志: # 配置ORM的loggers日志 LOGGING = { 'version': 1, 'disable_existing_loggers': F ...
- Django之模型层(单表操作)
一.ORM简介 MVC和MTV框架中包含一个重要部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库. ORM是‘对象-关系- ...
- Django中模型层中ORM的单表操作
ORM概念: MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...
- day 46 Django 学习3 数据库单表操作以及反向解析
前情提要: Django 已经学了不少了, 今天学习链接数据库的操作.以及相关的反向解析等 一:反向解析 1:反向解析模板层 跳转时设定url会随着前面的路由改变而改变 2:反向解析之 ...
随机推荐
- mysql 求季度产量平均值
表名:product 表结构: 表数据: 如果使用日期查询的话:sql: SELECT QUARTER(create_time) AS '季度',AVG(seller) AS '平均值' FROM p ...
- spring 多个数据库之间切换
多数据源问题很常见,例如读写分离数据库配置. 原来的项目出现了新需求,局方要求新增某服务器用以提供某代码,涉及到多数据源的问题. 研究成果如下: 1.首先配置多个datasource [html] v ...
- linux学习笔记6--命令mv
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. mv命令用来对文件或目录重新命名,或者将文 ...
- InnoDB: auto-extending data file ./ibdata1 is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
问题描述: centos 安装MySQL $yum install mysql-server 安装之后执行命令mysql 报错: 查看mysql的启动日志: [ERROR] InnoDB: auto- ...
- git clone ....git
[root@st153 git_test3]# git clone git@gitlab.gaobo.com:root/pythontest1.gitCloning into 'pythontest1 ...
- 临界区(Critical Section)的封装和使用示例
向我老大致敬! 这个做法其实是抄我老大的.服务器中,多线程经常需要使用临界区,为了简化代码的使用,把临界区封装为 CThreadLockHandle 类,通过封装,使用临界区资源每次只需要一行代码, ...
- linux在桌面和dos之间的切换
在linux 终端执行某条命令(init 5)时 提示一下错误 init :Need to be root 是提示要获取root权限 输入su 回车输入密码
- google web design html5制作工具
Google 推出 Web Designer,帮助你做 HTML 5 设计的免费本地应用,支持 Windows 和 OS X 2013年10月1日 感谢读者 SamRaper 的提醒. ...
- JFinal使用笔记3-注册和登录功能开发记录
首页 开源项目 问答 代码 博客 翻译 资讯 移动开发 招聘 城市圈 当前访客身份:游客 [ 登录 | 加入开源中国 ] 当前访客身份: 游客 [ 登录 | 加入开源中国 ] 软件 土龙 关注 ...
- 下列哪个为JSP的隐含对象。
下列哪个为JSP的隐含对象. A.env B.page C.jspinfo D.context 解答:B JSP有九个隐士对象 request对象:保存了很多客户端请求的信息. response对象: ...