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

Django中基表创建字段属性简介、脏数据概念、序列化

Django中基表设置 通过图书管理系统引入多表操作:如果我们创建方式是先抽象出表与表之间相同字段一个父类,然后在用每个表类去继承这个父类,如下面的代码,我们将无法得到期望字段。...更合理) """ Django orm中外字段属性详解 在建表之前我们对外字段属性进行了解: 1)related_name在外中设置反向查询字段名:正向找字段名,反向找related_name...SET_DEFAULT:假设A表依赖B表,B记录删除,A表字段重置为default属性设置,所以必须配合default属性使用。...序列化使用方法及注意事项: 1)只能在序列化中使用 2)字段名必须是(正向反向都可以)字段,相对于自定义序列化外字段,自定义序列化字段不能参与反序列化,而序列化必须为键名,序列化字段不写入数据库...3)如果关联表有多个字段时,需要设置序列化字段many=True。 4)序列化是单向操作,因为作为系列类必须写在上方,所以不能产生逆方向序列化。

4.3K30

Django学习-第七讲:django常用字段字段属性,和表关系、操作

一个参数是引用是哪个模型,第二个参数是在使用引用模型数据被删除了,这个字段该如何处理,比如有CASCADE、SET_NULL等。这里以一个实际案例来说明。...因此在底层,Django为Article表添加了一个属性名_id字段(比如author字段名称是author_id),这个字段一个,记录着对应作者主键。...即只要这条数据引用了那条数据,那么就不能删除外那条数据。 3.SET_NULL:设置为空。如果那条数据被删除了,那么在本条数据上就将这个字段设置为空。...如果设置这个选项,前提是要指定这个字段可以为空。 4.SET_DEFAULT:设置默认。如果那条数据被删除了,那么本条数据上就将这个字段设置为默认。...如果设置这个选项,前提是要指定这个字段一个默认。 5.SET():如果那条数据被删除了。那么将会获取SET函数中来作为这个

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

Django ORM 多表操作

目录 Django ORM 多表操作 表模型 表关系 创建模型 逆向到表模型 插入数据 ORM 添加数据(添加) 一对多( ForeignKey) 一对一 (OneToOneFeild) 多对多...ORM 多表操作 表模型 图书表 出版社表 作者表 作者详情表 表关系 一对一:一对一推荐建在查询频率高一方 一对多:字段建在多一方 多对多:字段建在查询频率多一方,在Django第三张表不需要创建...,自动创建 ps:字段不需要写表名_id后面的_id,ORM创建时候自动添加了_id,以及以虚拟字段形式存在 创建模型 '''models.py''' from django.db import...6、若有模型类存在外创建数据时,要先创建关联模型类数据,不然创建包含模型类数据时,关联模型类数据会找不到 逆向到表模型 插入数据 ps:插入几条数据方便操作 ORM...(常用) 一对多中,设置属性类(多表)中,MySQL 中显示字段名是:属性名_id。

1.7K20

Django&DRF重点内容大盘点

Django&DRF重点内容大盘点 本文只是将学习过程中需要深刻记忆,在工作中常用一些命令或者知识点进行一个罗列并阐释,不会全面的将所有内容进行讲解。...1.Django 1.1创建Django项目 这一命令必须熟记于心: django-admin startproject 项目名 1.2 创建应用 1.在工作中我们要开发很多项目,肯定需要很多模块,创建应用肯定也需要掌握..., verbose_name='图书') # cascade是级联,删除主表数据时连同表中数据一起删除 1.12.3迁移生成表 1)生成迁移文件 python manage.py makemigrations...多对象.属性 例:hero.hbook 2....(heroinfo__hcomment__contains='八') 查英雄(多) 多类.objects.filter(属性__字段__条件=) 例:heros

5.9K20

Django之ORM

Django中具体对应方式为: 类名对应数据库中表名 类名对应数据库中表名 类属性对应数据库里字段 类实例对应数据库表里一行数据 类实例对象属性对应这行中字段 一.数据库连接 Django...这里id是自动创建,school_id是school添加产生 如果想要与另一张表其他字段添加,需要在加上参数to_filed=’字段名’,同时这个字段必须是unique=True 2.一对一...表示多对多关系。 除了这种方式也可以手动创建一个表,手动添加两个来实现多对多。...,那么还可以直接添加该表字段,利用两个方式添加。...使用’__’进行查找 一对多 school_name为对象字段 school为student表中设置字段 student1=student.objects.filter(id=2).values

1.1K30

Django模型

django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列。... 这个东西,通常都是在业务逻辑层面来实现,而不是在数据库中实现。但是通常大家学习数据库课程中,都会有数据库设计范式,其中有个第三范式就是专指约束。在这里只是简单介绍一下。...下面是另外一个模型,和前面的BookInfo模型通过关联起来。...:通过使用models.ForeignKey来设置,ForeignKey一个参数是要关联模型类名,第二个参数是on_delete。...,此选项会抛出IntegrityError异常 注意:我们在数据库中,设置时候需要制定另一张表中关联字段,但是在Django里并没有指定。

1.9K20

Django相关知识点回顾

2.项目创建 创建项目: django-admin startproject 项目名 创建应用: python manage.py startapp 应用 应用首先到settings配置文件INSTALLED_APPS...return HttpResponse('hello world') 2.1.2url地址配置 1.先在应用中创建urls.py文件,设置当前应用中url地址和视图对应关系。...class Meta: db_table = '' 定义属性: # 表中外字段名格式: hbook = models.ForeignKey('BookInfo...() # 由多查1 多对象.属性 例:hero.hbook 2.通过模型类进行关联查询 # 查图书(一) 一类.objects.get|filter(多类名__字段__条件=) 例:books =...BookInfo.objects.filter(heroinfo__hcomment__contains='八') # 查英雄(多) 多类.objects.filter(属性__字段__条件=)

10K51

【愚公系列】2021年12月 Python教学课程 33-Django框架之模型

文章目录 一、模型类定义 1.字段及参数 二、数据库配置 三、模型迁移 (建表) 四、单独py文件测试ORM操作需要配置参数 ---- 一、模型类定义 代码如下: from django.db...import models # Create your models here. # 准备书籍列表信息模型类 class BookInfo(models.Model): # 创建字段字段类型...(max_length=10) gender = models.BooleanField() # 约束:人物属于哪本书 book = models.ForeignKey(BookInfo...EmailField:带有检查Email合法性 CharField,不接受 maxlength 参数....ForeignKey:字段,设置在 '一对多’中’多’一方; OneToOneField:一对一字段,用来扩展已有字段 ManyToManyFiled:多对多字段,建议设置在查询频率较高表中 二

55840

【愚公系列】2022年01月 Python教学课程 40-Django框架之模型属性详解

2) 关于主键 django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列。...不指定时Django会自动创建属性名为id自动增长属性 BooleanField 布尔字段为True或False NullBooleanField 支持Null、True、False三种 CharField...默认是False db_column 字段名称,如果未指定,则使用属性名称 db_index 若为True, 则在表中会为此字段创建索引,默认是False default 默认 primary_key...,blank是表单验证范畴 6) 在设置时,需要通过on_delete选项指明主表删除数据时,对于引用表数据如何处理,在django.db.models中包含了可选常量: CASCADE...级联,删除主表数据时连通一起删除外表中数据 PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被应用数据 SET_NULL设置为NULL,仅在该字段null=True

1.4K20

Mysql基础

每个时间类型有一个有效范围和一个"零",当指定不合法MySQL不能表示时使用"零"。 ?...创建 --- 每一个班主任会对应多个学生 , 而每个学生只能对应一个班主任 ----主表 CREATE TABLE ClassCharger( id TINYINT PRIMARY...语句 --约束对子表含义: 如果在父表中找不到候选,则不允许在子表上进行insert/update --约束对父表含义: 在父表上进行update/delete以更新或删除在子表中有一条或多条对...-- 应匹配行候选时,父表行为取决于:在定义子表时指定 -- on update/on delete子句...带EXISTS关键字查询 -- EXISTS关字键字表示存在。在使用EXISTS关键字时,内层查询语句不返回查询记录。 -- 而是返回一个真假

4.2K20

Django基础——ORM字段字段参数

操作数据行 --> 数据增删改查   不能创建数据库,自己动手创建数据库 使用DjangoORM详细步骤: 1....ForeignKey -->     ForeignKey 字段参数;     a.to  --> 设置要关联表;     b.to_field -->设置要关联字段     ...from django.db import models class UserInfo(models.Model): # 自动创建一个列名为id且为自增整数列...一对多(出版社和书);1对多  ,通常设置在多那一边; publisher = models.ForeignKey(to="Publisher") 数据库中实际 生成一个 publisher_id...ForeignKey(to=)),是需要添加 # 而书和作者是多对多,一本书可以有多个作者,还有一个作者也可能有多本书,即多对多时候用(ManyToManyField(to=)) #然后ROM

1.6K20

Django框架学习(三)

字段类型 类型 说明 AutoField 自动增长IntegerField,通常不用指定,不指定时Django会自动创建属性名为id自动增长属性 BooleanField 布尔字段为True或False...db_index 若为True, 则在表中会为此字段创建索引,默认是False default 默认 primary_key 若为True,则该字段会成为模型主键字段,默认是False,一般作为...AutoField选项使用 unique 如果为True, 这个字段在表中必须有唯一,默认是False 在设置时,需要通过on_delete选项指明主表删除数据时,对于引用表数据如何处理...,在django.db.models中包含了可选常量: CASCADE 级联,删除主表数据时连通一起删除外表中数据 PROTECT 保护,通过抛出ProtectedError异常,来阻止删除主表中被应用数据...应用会默认为我们创建一些表, 4.4演示工具使用 4.4.1shell工具 Djangomanage工具提供了shell命令,帮助我们配置好当前工程运行环境(如连接好数据库等),以便可以直接在终端中执行测试

1.8K40

Django中ORM操作

前言 Django框架功能齐全自带数据库操作功能,本文主要介绍DjangoORM框架 到目前为止,当我们程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb...,如果数据库迁移,只需要更换Django数据库引擎即可; 一、Django连接MySQL 1、创建数据库 (注意设置 数据字符编码) 由于Django自带orm是data_first类型ORM,...1、无需连表查询性能低,省硬盘空间(选项不固定时用) 2、在modle文件里不能动态增加(选项一成不变用Djangochoice) 其他字段 db_index = True 表示设置索引 unique...id列 from django.db import models class UserInfo(models.Model): # 自动创建一个列名为.....关联表字段,values(字段__关联表字段) 多对多:字段.all() 反向连表操作总结: 通过value、value_list、fifter 方式反向跨表:小写表名

4.7K10

django 1.8 官方文档翻译:2-1-1 模型语法

详见自增主键字段。 主键字段是只读。如果你在一个已存在对象上面更改主键并且保存,一个对象将会在原有对象之外创建出来。...中介模型有一些限制: 中介模型必须有且只有一个到源模型(上面例子中Group),或者你必须使用ManyToManyField.through_fields 显式指定Django 应该使用。...如果你模型中存在超个一个,并且through_fields没有指定,将会触发一个无效错误。 对目标模型有相同限制(上面例子中 Person)。...对于通过中介模型与自己进行多对多关联模型,允许存在到同一个模型两个,但它们将被作为多对多关联关系两个(不同)方面。...Changed in Django 1.7: 在Django 1.6 及之前版本中,中介模型禁止包含多于一个

4.9K20

Django 学习笔记之模型高级用法(上)

2.1 ForeignKey 1) on_delete 在 Django 2.0 中,设置时需要添加一个 on_delete选项。本身涉及到两个表数据,况且在数据库中是有约束行为。...SET_DEFAULT: 置默认,删除时候,字段设置为默认,所以定义时候注意加上一个默认。 SET(): 自定义对应实体。...2)limit_choices_to 该参数用于限制所能关联对象,只能用于 Django ModelForm(Django表单模块)和 admin 后台,对其它场合无限制功能。...4) related_name 用于关联对象反向引用模型名称。主要用于反向查询,即源模型实例通过管理器返回第一个模型所有实例。...如果用户没有定义该选项, Django会自动将自动创建,内容是该字段属性名中下划线转换为空格结果。

2K30

后端框架学习-Django

一对一映射 创建一对一: 语法:OneToOneField(类名, on_delete=xxx(级联删除:在存在前提下删除规则)) on_delete: models.CASCADE:级联删除...创建一对一数据 无模型类,和之前相同 有模型类: wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例...)) wife = Wife.objects.create(name=’王夫人’,author_id = 1(类属性字段)) 一对一查询 正向查询:从查对象 反向查询:从对象查 调用反向属性查询到关联一方...无模型类,和之前相同 有模型类: 类似上面 wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例)...Cookies 保存在客户端浏览器上存储空间 特点: cookies在浏览器是以键值对形式进行存储都是以ASCII码形式存储 存储数据带有生命周期 cookies数据是按照域隔离

9.3K40
领券