ORM中一对一在当一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁,那么就把不常用的字段单独拿出来做成一张表,然后通过一对一进行关联起来.举个例子:在我们登录某个账户的时候,一般会显示用户名,头像,而没有显示年龄,兴趣爱好,只有当点击用户详细信息的时候才显示这些年龄,兴趣爱好,所以一般将用户名,头像等作为用户表,而年龄,兴趣爱好就作为用户详细表. 一对一的优势:既保证数据都完整的保存下来,又能保证大部分的检索更快 ORM中一对一的用法:OneToOneField(to="表名&q…
一.一般操作 from django.db import models import datetime # Create your models here. class Author(models.Model): id=models.AutoField(primary_key=True) name=models.CharField(max_length=20) # 以下是测试字段 numtest=models.IntegerField() datetest=models.DateField(nu…
分页是每个项目必不可少要写的一个功能,该篇文章就将记录一下使用ORM写分页的过程. 假设我们的数据库里面需要显示一些数据,而这个表中的数据大约有几千条数据,那么我们不可能将所有的数据都显示出来,那么就需要使用分页来显示一部分数据,使用页数来进行翻页.在下面这个过程,我以一个demo的形式进行叙述. 1.要想有许多数据,就要先创建一个存储数据的表,下面就使用模型类创建一个表. class TeacherTest(models.Model): id=models.AutoField(primary_…
在之前的博客中已经讲述了使用ORM的多对多关系表,现在进行总结一下: 1.ORM自动帮助我们创建第三张表 2.手动创建第三张表,第三张表使用ForeignKey指向其他的两张表关联起来 3.手动创建第三张表,使用的和ORM帮助我们创建的一样(这种方法暂时先不赘述) 该博客重点讲一下第二种方法:手动创建第三张表,并且第三张表使用ForeignKey指向其他两张表关联起来 以作者和出版的书进行举例子.作者可以写多本书,书也可以有多个作者,书与作者的关系就是多对多的关系 1.创建两张各自的表(作者表和…
模型类: class Commongity(models.Model): id=models.AutoField(primary_key=True) name=models.CharField(max_length=20) price=models.DecimalField(max_digits=5,decimal_places=2) 聚合查询 aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典. 键的名称是聚合值的标识符,值是计算出来的聚合值.键…
Django框架06 /orm多表操作 目录 Django框架06 /orm多表操作 1. admin相关操作 2. 创建模型 3. 增加 4. 删除 5. 修改 6. 基于对象的跨表查询 7. 基于双下划线的跨表查询 -- 基于join实现的 8. Python脚本中调用Django 环境(Django外部脚本使用models) 1. admin相关操作 注册超级用户 python manage.py createsuperuser # 输入用户名:liubing # 邮箱不用输 直接回车 #…
Django框架05 /orm单表操作 目录 Django框架05 /orm单表操作 1. orm使用流程 2. orm字段 3. orm参数 4. orm单表简单增/删/改 5. orm单表查询 5.1 查询api 5.2 基于双下划线的模糊查询 / filter双下划线查询 总结: 1. orm使用流程 配置mysql # django 连接mysql,settings配置文件中 DATABASES = { 'default': { 'ENGINE': 'django.db.backends…
ORM的优点:(1)简单,不用自己写SQL语句 (2)开发效率高 ORM的缺点:对于不同的人写的代码,执行效率有差别 ORM的对应关系: 类  ---------->  数据表 对象----------->数据行 属性----------->字段 ORM能做的事: (1)操作数据表 -->创建表/删除表/修改表 (2)操作数据行 -->数据的增删查改 但是ORM不能创建数据库,需要自己动手创建数据库 使用Django中的ORM详细步骤: 1.手动创建数据库 2.在Django…
###############    一对一跨表查询    ################ import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ORM.settings") import django django.setup() from app01 import models # 一对一查询记录:author和authordetile是一对一…
###############    单表操作-添加数据    ################ import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ORM.settings") import django django.setup() from app01 import models # 一.添加表记录 # 对于单表有两种方式 # 添加数据的两种…
Django框架 之 ORM查询操作详解 浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Python脚本中调用Django环境 其他操作 一.一般操作 必知必会 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <1> all():                 查询所有结果    <2> f…
Django ORM那些相关操作   一般操作 看专业的官网文档,做专业的程序员! 必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误. <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <5>…
Django ORM 那些相关操作 一般操作 必知必会13条 <> all(): #查询所有的结果 <> filter(**kwargs) # 它包含了与所给筛选条件相匹配的对象 <> get(**kwargs) #返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出异常 <> exclude(**kwargs) #它包含了与所给筛选条件不匹配的对象. <> values(*field) :反回一个…
一.ORM介绍 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. 2.ORM的由来 让我们从O/R开始.字母O起源于"对象"(Object),而R则来自于"关系"(Relational). 几乎所有的软件…
什么是ORM ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法. ORM的优缺点是什么 优点:摆脱复杂的SQL操作,适应快速开发:让数据结构变得简洁:数据库迁移成本更低(如从mysql->oracle) 缺点:性能较差.不适用于大型应用:复杂的SQL操作还需通过SQL语句实现. ORM跟数据库的对应关系 表名…
Django框架 之 ORM 常用字段和参数 浏览目录 常用字段 字段合集 自定义字段 字段参数 DateField和DateTimeField 关系字段 ForeignKey OneToOneField ManyToManyField 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范围在 -2147483648 to 2147483647. Ch…
Python的Django框架中的Cookie相关处理 浏览器的开发人员在非常早的时候就已经意识到. HTTP's 的无状态会对Web开发人员带来非常大的问题,于是(cookies)应运而生. cookies 是浏览器为 Web server存储的一小段信息. 每次浏览器从某个server请求页面时,它向server回送之前收到的cookies 来看看它是怎么工作的. 当你打开浏览器并訪问 google.com .你的浏览器会给Google发送一个HTTP请求,起始部分就象这样: GET / H…
Django框架 之 ORM中介模型 中介模型 处理类似搭配 pizza 和 topping 这样简单的多对多关系时,使用标准的ManyToManyField  就可以了.但是,有时你可能需要关联数据到两个模型之间的关系上. 例如,有这样一个应用,它记录音乐家所属的音乐小组.我们可以用一个ManyToManyField 表示小组和成员之间的多对多关系.但是,有时你可能想知道更多成员关系的细节,比如成员是何时加入小组的. 对于这些情况,Django 允许你指定一个中介模型来定义多对多关系. 你可以…
###############    ORM介绍  ################ """ ORM简介: ORM 全拼Object-Relation Mapping. 中文意为 对象-关系映射. 在MVC/MVT设计模式中的Model模块中都包括ORM 在django里面主要是在models.py文件里面设计模型类, ORM和数据库关系: 类--数据表 对象--数据行 属性--字段,理清了这三点,ORM就没有问题 ORM的优点: 1,不用编写各种数据库的sql语句,让软件开…
1,字段和字段的参数 1.1>ORM的概念:对象映射模型(Objects Relational Model)是一种为了解决面向对象和关系型数据库存在的互不匹配的现象和技术,简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中,ORM是连接业务逻辑和关系型数据库的桥梁 1.2>ORM的由来 在程序开发人员中,需要一边写业务逻辑部分的内容,有要一遍边写sql语句的增删改查,这就造成程序开发人员的开发效率不够高,错误漏洞会百出,sql语句特点是极其相似的…
首先在创建表的时候看下分析一下 1.作者表和作者详细地址表  一对一关系 理论上谁都能当主表 把Author设置成主表 au=models.OneToOneField(to='AuthorDetail',to_field='id') 主表会多个au列 用于关联 2.书和出版社 一个出版社可以出好多书 一对多关系,哪个表数据多就把关键设置哪个表中 所以publisher=models.ForeignKey(to='Publish',to_field='id',on_delete=models.CA…
1.常用的模型字段类型 https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types 2.字段的常用参数 官方文档:https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-options 3.常用查询 通过模型类上的管理器来构造QuerySet. 模型类上的管理器是啥? ​ 模型类.objects,<django.db.models.manager.M…
一般操作 看专业的官网文档,做专业的程序员! 必知必会13条 <> all(): 查询所有结果 <> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误. <> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <> values(*field): 返回一个Val…
一般操作 看专业的官网文档,做专业的程序员! 必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误. <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <5> values(*field): 返回…
一般操作 https://docs.djangoproject.com/en/1.11/ref/models/querysets/         官网文档 常用的操作 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误. <4> exclude(**k…
一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录----------------->类实例化对象 ORM的两大功能: 操作表: - 创建表 - 修改表 - 删除表 操作数据行: - 增删改查 ORM利用pymysql第三方工具链接数据库 Django没办法帮我们创建数据库,只能我们创建完之后告诉它,让django去链接 二.创建表之前的准备工作 1.自己创建数据库 2.在settings里面配置m…
一.ForeignKey操作 正向查找 对象查找(跨表) 语法: 对象.关联字段.字段   示例: book_obj = models.Book.objects.first() # 第一本书对象 print(book_obj.publisher) # 得到这本书关联的出版社对象 print(book_obj.publisher.name) # 得到出版社对象的名称 字段查找(跨表) 语法: 关联字段__字段 示例: print(models.Book.objects.values_list("p…
多表操作 创建表模型 from django.db import models # Create your models here. class Author(models.Model): nid = models.AutoField(primary_key=True) name=models.CharField( max_length=32) age=models.IntegerField() # 与AuthorDetail建立一对一的关系 authorDetail=models.OneToO…
###############    ORM进阶---contenttype    ################ 设计思路: """ 路飞有两种课,专题课和学位课, 专题课都是简单的内容,基础的课程模块, 学位课都是大课程,全套课程, 怎么设计价格策略的问题? 第一种设计: 价格策略表: id,价格, 期限,专题课id,学位课id 1 11 3个月 1 空 1 11 6个月 1 空 1 11 9个月 1 空 1 11 9个月 2 空 1 11 3个月 空 1 1 11 6…
阅读目录 常用字段 字段合集 自定义字段 字段参数 关系参数 多对多的关联关系的三种方式 一.常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范围在 -2147483648 to 2147483647.  (最大十位) CharField 字符类型,必须提供max_length参数, max_length表示字符长度. DateField 日期字段,…