目录 模型层之ORM执行SQL语句 方式1一 方式二 方式三 神奇的双下划线查询 ORM外键字段的创建 1.创建基础表 2.确定外键关系 3.表的查看 数据的录入 外键字段相关操作 针对一对多 '''一对一与一对多 也一致''' 针对多对多关系绑定 ORM跨表查询 正反向查询的概念(重要) 正向查询 反向查询 ORM跨表查询的口诀(重要) 正向查询按外键字段 反向查询按表名小写 基于对象的跨表查询 基于上下划线的跨表查询 基于双下划线的跨表查询 进阶操作 补充 模型层之ORM执行SQL语句 有时…
ORM执行SQL语句,神奇的双下划线查询,ORM外键字段的创建,外键字段数据的操作,多表查询 一.ORM执行SQL语句 有时候ORM的操作效率较低,我们是可以自己来编写SQL语句的 方式一: res = models.User.objects.raw('select * from app01_user') print(list(res)) 方式二: from django.db import connection cursor = connection.cursor() cursor.execu…
今日内容 ORM执行SQL语句 有时候ROM的操作效率可能偏低 我们是可以自己编写sql的 方式1: models.User.objects.raw('select * from app01_user;') 方式2: from django.db import connection cursor = connection.cursor() cursor.execute('select name from app01_user;') print(cursor.fetchall()) 神奇的双下划线…
目录 一.ORM执行SQL语句 二.神奇的双下划线查询 三.ORM外键字段的创建 复习MySQL外键关系 外键字段的创建 1.创建基础表(书籍表.出版社表.作者表.作者详情) 2.确定外键关系 3.ORM创建 4.完整的创建代码 四.外键字段相关操作 五.ORM跨表查询 六.基于对象的跨表查询 七.基于双下划线的跨表查询 八.进阶操作 一.ORM执行SQL语句 django中的ORM提供的操作功能有限,在模型提供的查询API不能满足实际工作需要时,可以在ORM中直接执行原生sql语句. Djan…
ORM执行查询SQL语句 有时候ORM的操作效率可能偏低 我们是可以自己编写SQL的 方式1: models.User.objects.raw('select * from app01_user;') 方式2: from django.db import connection cursor = connection.cursor() cursor.execute('select name from app01_user;') print(cursor.fetchall()) ps:这两个方式 只…
Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 方式1: 任意创建一个py文件,在该文件内书写固定的配置 import os if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoProject2.settings') import dj…
目录 一:Django测试脚本 1.测试环境准备 2.tests.py 3.models.py 4.切换MySQL数据库 二:单表操作 1.pk关键字与get关键字 2.增 3.删 4.修 三:必知必会13条 1.all查询所有数据 2.filter 过滤条件 3.get 直接拿数据对象 条件不存在报错 4.first() 拿queryset里面第一个元素 5.last() 拿queryset里面最后一个元素 6.values() 可以指定获取的数据字段 列表套字典 K:v 7.values_l…
Django ORM中常用的字段和参数 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范围在 -2147483648 to 2147483647.(一般不用它来存手机号(位数也不够),直接用字符串存,) CharField 字符类型,必须提供max_length参数, max_length表示字符长度. DateField 日期字段,日期格式  Y…
单表查询之神奇的双下划线: 单表查询之神奇的双下划线 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11.22.33的数据 models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in models.Tb1.objects.filter(name__c…
引言 从EF6开始,增加了DateBase类,他通过从 DbContext 对象获取此类的实例.可用于管理支持数据库上下文或连接的实际数据库.这包括创建.删除和检查数据库的存在. 在6以前,我们使用EF,需要借助ADO.NET才能直接执行SQL语句.由于Linq查询自身存在的一些短板,例如有以下场景:在上万的数据容量的情况下,需要联合3个表以下的查询统计时,Linq就显出了自己的不足.这时 有一定经验的人肯定想到了使用存储过程 将业务中复杂的逻辑运算放到数据库执行,这时就需要用到DataBase…