一.内容回顾 1.Django请求的生命周期: ​ 路由系统 -> 视图函数(获取模板+数据 -> 渲染) -> 字符串返回给用户 2.路由系统: /index/ #-> 函数或类.as_view() /detail/(\d+) #-> 函数(参数) 或 类.as_view()(参数) /detail/(?P<nid>\d+) #-> 函数(参数) 或 类.as_view()(参数) /detail/ #-> include("app01.u…
1.orm外键操作 创建外键: 备注:ForeignKey两个参数,1个为关联的表名,1个为关联的字段名: 在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题 当建完表后,我们发现在sqlite中,cmdb_userinfo表中字段,usergroup字段名称发生了变更,变更为usergroup_id. 当我们使用obj=models.UserInfo.objects.all()时,可以通过obj.的方式,找到usergroup…
外键 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam.如果使用的是InnoDB引擎,是支持外键约束的.外键的存在使得ORM框架在处理表关系的时候异常的强大.因此这里我们首先来介绍下外键在Django中的使用. 类定义为class ForeignKey(to,on_delete,**options).第一个参数是引用的是哪个模型,第二个参数是在使用外键引用的模型数据被删除了,这个字段该如何处理,比如有CASCADE.SET_NULL等.这里以一个实际案例来说明.比如有一个…
models.py: from django.db import models # 出版社 class Publisher(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64, null=False, unique=True) def __str__(self): return "<Publisher object: {}>".format(…
Django---Django的ORM的一对多操作(外键操作),ORM的多对多操作(关系管理对象),ORM的分组聚合,ORM的F字段查询和Q字段条件查询,Django的事务操作,额外(Django的终端打印SQL语句,脚本调试) 一丶Django的ORM外键操作 通过对象查找 ### 正向查找 # 获得图书对象 book_obj=models.Book.objects.get(pk=1) ret=book_obj.pub #pub是Book表的外键字段,存在Book表中. 通过pub可以拿到所关…
Django支持修改表结构 把max_length=64 改为60 再执行一遍 python manage.py makemigrations python manage.py migrate 如果是增加一列 再执行一遍 python manage.py makemigrations 会出现众多选项 如果选择1,会让你输入一个默认值  我们输入“alex” 再执行python manage.py migrate 就更新了数据库 ------------- 如果新加的一列可为空值Null 再执行一…
Django ORM 外键操作 经常修改的东西一般不放到内存里面,而是放到一张表里.表跟表之间是可以存在关系的,最基本的就是一对多的关系. models.ForeignKey(ColorDic) 1. 在models.py中创建2张表,UserGroup中有2列数据,UserInfo中有3列数据. from django.db import models # Create your models here. class UserGroup(models.Model): uid=models.Au…
Django中的外键: 首先,为了方便理解,我们把使用ForeignKey的字段所在的表定义为从表,把ForeignKey中to参数连接的表称为主表. 外键使用的先决条件: 在mysql数据表中,数据引擎有很多种,最常用的就是InnoDB和MyISAM,只有主表和从表的数据库引擎都是InnoDB时,表与表之间才能使用外键连接 外键介绍: 外键在django的ORM连表操作时非常常用,在django中我们使用ForeignKey作为关键词去定义外键,下面是ForeignKey的构造方法: def…
Django之ORM表间操作   之前完成了简单的数据库数据增加操作.这次学习更多的表间操作. 单表操作 增加 方式一 b = Book(title="Python基础", publication_date="2019-10-15", price=20) b.save() 这是我们之前增加数据的方式,是用实例化对象的方式来添加数据的,这是添加数据的一种方式,接下来,我们看看其他的添加数据的方式. 方式二 Book.objects.create(title="…
Django的ORM常用查询操作总结(Django编程-3) 示例:一个Student model: class Student(models.Model): name=models.CharField(max_length=10) sex = models.IntegerField(choices=((1,"男"),(2,"女")),default=1) birth = models.DateField(null=True) school=models.CharF…