Django的日常-模型层(1)】的更多相关文章

目录 Django的日常-模型层(2) 几种常用的查询方式 聚合查询 分组查询 F和Q查询 查询优化相关 orm中常见字段 choices参数 orm的事务操作 Django的日常-模型层(2) 几种常用的查询方式 聚合查询 ​ 聚合,我们应该有这个概念,因为在数据库的SQL语言里面有聚合函数的概念,聚合,字面意思来说,就是把一类东西放在一起,但是跟分组又不太一样. ​ 我们知道我们在写SQL语句的时候,分组groupby和聚合函数是分不开的,因为一旦select语句里面有分组,那么我们就只能查…
目录 Django的日常-模型层(1) 模型层 django测试环境 ORM查询 Django的日常-模型层(1) 模型层 模型层其实就是我们应用名下的models.py文件,我们在里面写入想要创建的表的表结构,以类的形式表示出来,然后通过django的ORM来实现表的创建,以及表的增删改查等. django测试环境 不是正式开发项目的话,其实我们不必要一定按正式的流程来,又要建html,又要写urls,写views,因为我们在学习模型层的时候其实只需要通过ORM来对数据库进行操作,所以我们大可…
目录 Django的日常-2 路由层 有名分组和无名分组 反向解析 路由的分发 Django的日常-2 路由层 我们之前已经接触过路由层,只是我们可能不知道他叫这个名字,实际上在Django里面路由层指的就是urls.py这个文件. 路由的概念是什么,我们平时生活中接触最多的和路由有关的大概就是路由器了,那么路由器是干嘛的? 路由器是连接多个网络的硬件设备,在网络之间起到网关的作用,可以对不同网络的网络之间的数据包进行处理和转发. Django里面的路由层与此作用有些类似,路由即请求地址和视图函…
模型层 查看orm内部sql语句的方法的方法 1.如果是queryset对象,那么可以点query直接查看该queryset的内部sql语句 2.在Django项目的配置文件中,配置一下参数即可实现所有的orm在查询的时候自动打印对应的sql语句 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.Strea…
1 重要概念 # 多表查询 """ 正向查询 反向查询 当前查询对象是否含有外键字段 如果有就是正向 没有无则是反向 口诀: 正向查询按外键字段 多对多需要额外再加一个.all() 一对多和一对一不需要加 反向查询按表名小写 一对多与多对多 _set.all() 一对一 不需要加 """ 2 多表查询 #####################基于对象的跨表查询##################### # 子查询:将一张表的查询结果当做另外一条…
昨日内容回顾: 1. {% include '' %} 2. extend base.html: <html> ..... ..... ..... {% block content%} {% endblock%} </html> index.html: {% extend 'base.html'%} <p>python</p> {% block content%} <p>hello</p> {% endblock%} 子网页,也可以设…
聚合查询 关键字:aggregate from django.db.models import Max,Min,Sum,Count,Avg 统计所有书的平均价格 models.Book.objects.all().aggregate(Avg('price')) #拿所有的书籍的价格的平均值 这样的话就可以求最大的价格,最小的价格等 分组查询 关键字:annotate 统计每一本书的作者个数 models.Book.objects.annotate(author_num = Count('auth…
内容概要 查询关键字 MySQL select    from    where    group by    having    order by    distinct    limit    regexp    # SQL语句内也支持写流程控制Django ORM 神奇的双下线查询 多表查询 子查询 基于对象的跨表查询连表操作 基于双下划线的跨表查询ps:ORM远比SQL语句简单 分组与聚合 F与Q查询 ORM查询优化(only与defer...) ORM字段补充 内容详细 1 关键字 #…
一. 铺垫 1. 连接Django自带数据库sqlite3 之前提到过Django自带一个叫做sqlite3的小型数据库,当我们做本地测试时,可以直接在sqlite3上测试.不过该数据库是小型的,在有些细节可能体验不大好,比如用ORM用双下划线查询语法时,使用__contains和__icontains的结果是一样的,因为sqlite3无论怎么样都不区分大小写,而且它还会自动把日期格式的字段转为时间戳(该体验贼差). 不过除此之外还好,目前也没发现其他问题,做一些数据的小测试还是绰绰有余的. 1…
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带领大家进行简单的建表.查询和删除,因为model的重要性所以后面几篇都会围绕ORM慢慢深入. 一.ORM 映射关系: 表名 <-------> 类名 字段 <-------> 属性 表记录 <------->类实例对象 二.创建表(建立模型) 1.创建表的代码写在项目下的m…