首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django ORM

目录 Django ORM ORM实操之数据库迁移 ORM实操之字段的修改 ORM实操之数据的增删改查 数据库同步 ORM创建表关系 Django请求生命周期流程图 路由匹配 无名分组 有名分组 反向解析...无名分组和有名分组反向解析 Django ORM ORM:对象映射关系程序 通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了...id,就写上~ ORM实操之字段的修改 # 原来的表 class user(models.Model): username = models.CharField(max_length=32)...=32) address = models.CharField(max_length=32) 注意: 外键不需要写id,会自动添加id,比如author_id,不需要写_id,orm自动补充...ORM自动创建书籍和作者的第三张表,只有多对多关系表被单独创建出来 Django请求生命周期流程图 路由匹配 路由:通俗理解为除去ip和port之后的地址 在新版本Django2.x中,url的路由表示用

4K10

DjangoORM

ORM ORM即Object Relational Mapping(对象关系映射) 对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping...} 2.引入pymysql驱动 在init.py文件中加上 import pymysql pymysql.install_as_MySQLdb() 二.表的创建 1.一个简单的创建 数据库表的创建在ORM...import Avg,Min,Sum,Max 举例: result=student.objects.all().aggregate(Max('num')) print(result) 得到的是一个字典...('num')) 6.分组查询annotate 分组查询就像是SQL语句中的group by 可以如下使用,即以school_id分组,计算每组的max(num) result=student.objects.values...__lt=2).values('school_id').annotate(Max('num')) 7.F查询 执行F查询前还得先引入 from django.db.models import F F查询可以将对象中的值作为变量使用

1.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

Django ORM详解

ORM:(在django中,根据代码中的类自动生成数据库的表也叫--code first) ORM:Object Relational Mapping(关系对象映射) 我们写的类表示数据库中的表 我们根据这个类创建的对象是数据库表里的一行数据...obj.id  obj.name.....就是数据库一行数据中的一部分数据 ORM--First: 我们在学习django中的orm的时候,我们可以把一对多,多对多,分为正向和反向查找两种方式。...马上就要开始我们的orm查询之旅!!! 建表+配置url+views中写相应的函数 models.py(在django中仅且只能在这里写数据库的相关类) ?...django的filter方法是从数据库的取得匹配的结果,返回一个对象列表,如果记录不存在的话,它会返回[]。 ? ORM的一对多: 我们在设计表结构的时候什么时候使用一对多呢?...=32)     email = models.CharField(max_length=32)       #through告诉Django用那张表做关联     host = models.ManyToManyField

1.7K100

django orm(2)

聚合函数 这里的聚合函数和SQL里的聚合函数对应,在使用前需要先进行模块的导入: from django.db.models import Max,Min,Sum,Count,Avg 常用的聚合函数有求最大值...Decimal('312.00'), 'avg1': 52.0} 分组查询 分组查询主要应用在比如查询班级中男生、女生的个数等需要先分组再查询的场景,分组操作使用的annotate内部调用的是SQL语句group...Django中的事务 还未进行详细讲解 orm字段及参数 常用字段: 字段 描述 AutoField int自增列,必须填入参数 primary_key=True。...=32) class Group(models.Model): # 自定义自增列 nid = models.AutoField(primary_key...- 时间格式 HH:MM[:ss[.uuuuuu]] DurationField(Field) - 长整数,时间间隔,数据库中按照bigint存储,ORM

1.1K21

DjangoORM操作

前言 Django框架功能齐全自带数据库操作功能,本文主要介绍DjangoORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb...来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 Django orm的优势: Djangoorm操作本质上会根据对接的数据库引擎,翻译成对应的sql语句;所有使用Django...,如果数据库迁移,只需要更换Django的数据库引擎即可; 一、Django连接MySQL 1、创建数据库 (注意设置 数据的字符编码) 由于Django自带的orm是data_first类型的ORM,...c1" = 1 GROUP BY "app01_tb1"."...连表操作 我们在学习django中的orm的时候,我们可以把一对多,多对多,分为正向和反向查找两种方式。

4.7K10

Django ORM 多表操作

目录 Django ORM 多表操作 表模型 表关系 创建模型 逆向到表模型 插入数据 ORM 添加数据(添加外键) 一对多(外键 ForeignKey) 一对一 (OneToOneFeild) 多对多...(ManyToManyField):在第三张关系表中新增数据 ORM 修改数据 ORM 删除和清空数据 跨表查询 基于对象的跨表查询 基于双下划线的跨表查询 聚合查询 示例 F查询 Q查询 Django...ORM 多表操作 表模型 图书表 出版社表 作者表 作者详情表 表关系 一对一:一对一推荐建在查询频率高的一方 一对多:外键字段建在多的一方 多对多:外键字段建在查询频率多的一方,在Django第三张表不需要创建...,自动创建 ps:外键字段不需要写表名_id后面的_id,ORM创建的时候自动添加了_id,以及外键以虚拟字段的形式存在 创建模型 '''models.py''' from django.db import...,Min,Count,Avg 在Django中使用聚合函数需要导入:from django.db.models import Sum,Max,Min,Min,Count,Avg 注意: 使用聚合函数查询的时候

1.7K20

django orm 重点大全

=32) author = models.OneToOneField("Author") #建立的一对一的关系 2.orm字段必须要知道的一些属性 (0)null 如果为True,Django...如果你没有指定任何一个字段的primary_key=True, Django 就会自动添加一个IntegerField字段做为主键,所以除非你想覆盖默认的主键行为, 否则没必要设置任何一个字段的primary_key...例如: from django.db import models class Person(models.Model): SHIRT_SIZES = ( (‘S‘, ‘Small...", shirt_size="L") >>> p.save() >>> p.shirt_size ‘L‘ >>> p.get_shirt_size_display() ‘Large 3.orm添加记录,...其实重要的是先查到,然后再添加就比较容易了,传说中的三种方式,貌似实际应用中只有save()的方式可以使用,原因无他,只有save()能触发django定义的一些钩子函数,留下数据更改的日志信息,比较安全

78140

Django ORM 知识概要

11个字节的整数 models.IntegerField() 20个字节的整数 models.BigIntegerField() 字符串类型 varchar models.CharField(max...True db_index=True 给表单建立索引 help_text='' 表单中显示帮助信息 editable=False 表单不可编辑 个别字段才有的参数 给CharField 指定最大长度 max_length...unique_for_date=True unique_for_month=True auto_now=True 更新时间 auto_now_add=True 新增时间 浮点型 Decimal max_digits...这个不是SQL标准的一部分,完全由Django处理。 DO_NOTHING:SQL等价物:NO ACTION。...数据表操作 更改数据表 删除数据库表步骤 删除对应的模型类代码 删除migrationd文件夹下面的模型类 删除Django的migrations表中对应的记录 删除数据库表 导入数据 Django

1.8K20

DjangoORM简介

,是表示和操作数据库的方法和方式 ORM框架 定义:ORM(Object Relation Mapping)即对象关系映射,它是一种程序技术,它允许你使用类和对象数据库进行操作,从而进行避免通过SQL...也不用关注MySQL、ORACLE…的内部细节 缺点 对于复杂业务,使用成本较高… 根据对象的操作转换成SQL语句,根据查询的结果转化成对象,在映射的过程中有性能损失 世间万物 即无完美 ORM...): # CharField host_name = models.CharField("HOSTNAME",max_length=50,default='') addr = models.CharField...("Addr",max_length=255) cpu_info = models.DecimalField("CPU",max_digits=7,decimal_places=2,default...=0.0) 数据库迁移 迁移是Django同步你对模型所做的更改(添加字段、删除模型…)到你的数据的方式.

58320

Django之模型---ORM简介

ORM   ORM,是“对象-关系-映射”的简称,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动...7 id=models.AutoField(primary_key=True) 8 title=models.CharField(max_length=32) 9...=8,decimal_places=2) 12 publish=models.CharField(max_length=32) models.py 关于字段的创建 ?...必须 提供两个参数: 参数 描述 max_digits 总位数(不包括小数点和符号) decimal_places...__version__) 注释掉就ok了 注意4: 如果想打印orm转换过程中的sql,需要在settings中进行如下配置: 1 LOGGING = { 2 'version': 1,

1.5K10
领券