![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ORM框架
文章平均质量分 74
ORM框架
敲代码敲到头发茂密
欲戴王冠,必承其重
展开
-
【django】模型类中数据的增删改查操作总结
Queryset对象是惰性计算的,当通过管理器创建queryset的时候,并不会直接去数据库中查询,只有真正的对queryset进行计算的时候才会到数据库中查询。什么时候?迭代、切片、索引、打印原创 2023-01-09 08:24:35 · 1600 阅读 · 39 评论 -
【django】关联模型类中数据的增删改查操作总结
在外键字段中使用related_name,可以自定义反向字段channel = models . ForeignKey('Channel' , on_delete = models . RESTRICT , null = True , help_text = '外键字段') , # 不允许删除, related_name = 'students'那么通过students进行操作同多对一。原创 2023-01-08 10:25:11 · 927 阅读 · 35 评论 -
【django】数据库操作-增 删 改(已更新)
一、增加数据增加数据有两种⽅法。1)save通过创建模型类对象,执⾏对象的save()⽅法保存到数据库中。f1=FilmInfo(fname='我爱你中国',pub_data='2021-10-01')f1.save()2)create通过模型类.objects.create()保存。FilmInfo.objects.create(fname='我爱你china',pub_data='2021-10-12')<FilmInfo: 我爱你china>注意:每次更新了mo原创 2021-12-17 07:00:00 · 508 阅读 · 1 评论 -
django——ORM常用查询总结
p=Projects.objects.only(“tester”,“name”)查询tester和name字段不会走数据库,走的是查询集查询其他字段,会重新走数据库查询;而p=Projects.objects.all()就不用走数据库查询了原创 2022-08-16 09:04:44 · 1917 阅读 · 63 评论 -
ORM多表查询——关联查询
一、关联查询:通过父表参数获取从表数据,通过从表参数获取父表数据从表查询主表中的数据:数据表截图项目表接口表现在要实现的需求如下:1、查询项目名称中包含’搜狗‘的所属接口信息:分析:获取的是接口信息,所以Interfaces开头进行查询2、查询项目负责人中包含’zilv‘的所属接口信息分析:获取的是接口信息,所以Interfaces开头进行查询3、查询接口名称包含“收藏”所属的项目名称分析:获取项目信息,所以Projects开头进行查询查...原创 2021-07-21 12:41:42 · 2634 阅读 · 0 评论 -
【django】查询集QuerySet
一、概念Django的ORM中存在 查询集 的概念。查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。当调⽤如下过滤器⽅法时,Django会返回查询集(⽽不是简单的列表):all():返回所有数据。filter():返回满⾜条件的数据。exclude():返回满⾜条件之外的数据。order_by():对结果进⾏排序。对查询集可以再次调⽤过滤器进⾏过滤,如FilmInfo.objects.filter(fid__gt=2).order_by('pub_date')&l原创 2021-12-20 07:00:00 · 599 阅读 · 1 评论 -
【django】 F 和 Q 对象
一、 F对象之前的查询都是对象的属性与常量值⽐较,两个属性怎么⽐较呢? 答:使⽤F对象,被定义在django.db.models中。语法如下:F(属性名)1、例:查询播放量⼤于等于评论量的影⽚。from django.db.models import FFilmInfo.objects.filter(playcount__gt=F('commentcount'))<QuerySet [<FilmInfo: 金刚狼>, <FilmInfo: 夺冠>, <Fil原创 2021-12-19 07:00:00 · 473 阅读 · 0 评论 -
【django】聚合函数和排序函数(已更新)
一、 聚合函数使⽤aggregate()过滤器调⽤聚合函数。聚合函数包括:Avg平均,Count数量,Max最⼤,Min最⼩,Sum求和,被定义在django.db.models中。1、例:查询影⽚的总播放量。from django.db.models import Sum,Avg,Count,Max,MinFilmInfo.objects.aggregate(Sum('playcount')){'playcount__sum': 200420}注意: aggregate 的返回值是⼀个字典类原创 2021-12-18 07:00:00 · 862 阅读 · 0 评论 -
django中模型类的创建
ORM框架:1、一般需要在子应用projects中的models.py定义模型类(相当于数据库中的一张表)2、必须继承Model或者Model的子类3、在模型类中定义类属性(必须得为Field子类)相当于数据表中的字段4、 CharField---》varcharIntegerField---》integerBooleanField---》bool5、在migrations里,存放迁移脚本:python manage.py makemigrations 子应用名(projects原创 2021-07-17 23:47:48 · 748 阅读 · 0 评论 -
【django】关联查询
一、关联查询1、查询影⽚编号为2的所有⼈物信息由⼀到多的访问语法:对应的模型类对象.对应的模型类名⼩写_set f1=FilmInfo.objects.get(fid=2)f1.peopleinfo_set.all()<QuerySet [<PeopleInfo: 吴京>, <PeopleInfo: 谢霆锋>]>2、查询⼈物编号为1的影⽚信息由多到⼀的访问语法:多对应的模型类对象.多对应的模型类中的关系类属性名p=PeopleInfo.objects原创 2021-12-20 07:00:00 · 1311 阅读 · 0 评论 -
【django】模型
一. 模型当前项⽬的开发, 都是数据驱动的。以下为影⽚信息管理的数据关系:影⽚和⼈物是 :⼀对多关系要先分析出项⽬中所需要的数据, 然后设计数据库表二. 使⽤Django进⾏数据库开发的提示 :1、MVT设计模式中的Model,专⻔负责和数据库交互.对应(models.py)2、由于Model中内嵌了ORM框架,所以不需要直接⾯向数据库编程.3、⽽是定义模型类,通过模型类和对象完成数据库表的增删改查.4、ORM框架就是把数据库表的⾏与相应的对象建⽴关联, 互相转换.使得数据库的操作⾯向对原创 2021-12-13 07:00:00 · 422 阅读 · 0 评论 -
【django】创建模型类(已更新)
一、创建模型类模型类创建在应用目录/models.py文件中。模型类必须继承Model类,位于包django.db.models中。接下来首先以“影片-人物”管理为例进行演示1 定义 在models.py ⽂件中定义模型类。# 创建影片模型类class FilmInfo(models.Model): fid = models.AutoField(primary_key=True, verbose_name='影片编号') fname = models.CharField(max_原创 2021-12-17 07:00:00 · 1942 阅读 · 0 评论 -
【django】站点管理
1. 站点管理1.1 管理界⾯本地化a、本地化是将显示的语⾔、时间等使⽤本地的习惯,这⾥的本地化就是进⾏中国化.b、中国⼤陆地区使⽤简体中⽂, 时区使⽤亚洲/上海时区,注意这⾥不使⽤北京时区.本地化前本地化前本地化后1.2 创建管理员python manage.py createsuperuser启动服务器后浏览器访问127.0.0.118000/admin/登录成功后进⼊主⻚⽬前站点⽆法对影⽚信息以及⼈物信息进⾏增删改查操作。1.3 注册模型类在应⽤的admin.py原创 2021-12-14 07:00:00 · 681 阅读 · 0 评论 -
【django】各种关联关系的模型类设计
已知学生表、学生详情表、课程表、报名表、渠道表;其中学生表和学生详情表的关联关系为一对一;学生表和课程表的关系为多对多;学生表和渠道表的关系为一对多;虽然django会自定义第三张中间表,但是不能提供额外的字段,如果中间表需要包含其他字段,就需要自定义中间表,然后在定义多对多字段的时候,通过through参数指定第三张中间表。原创 2023-01-01 22:10:43 · 831 阅读 · 34 评论 -
【django】基础条件查询(一)(已更新)
一. 基本查询get查询单⼀结果,如果不存在会抛出模型类.DoesNotExist异常。all查询多个结果。count查询结果数量。原创 2021-12-18 07:00:00 · 983 阅读 · 0 评论