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

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

关系 在MySQL有两种引擎,一种是InnoDB,另外一种是myisam。如果使用的是InnoDB引擎,是支持约束的。的存在使得ORM框架在处理关系的时候异常的强大。...因此这里我们首先来介绍下在Django的使用。 类定义为class ForeignKey(to,on_delete,**options)。...因此在底层,Django为Article添加了一个属性名_id的字段(比如author的字段名称是author_id),这个字段是一个,记录着对应的作者的主键。...如果一个模型使用了。...如果对应的那条数据被删除了,那么这条数据也会被删除。 2.PROTECT:受保护。即只要这条数据引用了的那条数据,那么就不能删除外的那条数据。 3.SET_NULL:设置为空。

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

Sequelize笔记

. // Comment属于User,即User是主表,Comment是副 // 给Comment起别名:from_user,指定Comment是from_userid,指定User的主键是id...可以设置foreignKey,但不能设置目标主键targetKey(设置了也无效),可用sourceKey代替。 // 一个Show有多个Car,即Show是主表,Car是副。...此外,目标也可以连接到多个源. foreignKey 将允许你在 through 关系设置 source model . otherKey 将允许你在 through 关系设置 target model...{ through: Article_tag, foreignKey: 'tag_id', otherKey: 'article_id' }) 区别 // Tag是主键,Article_tag是...,Tag带多个Article_tag Tag.hasMany(Article_tag) // Article_tag是主键,Tag是,Article_tag带多个Tag Tag.belongsTo

3.7K10

Django的创建、字段属性简介、脏数据概念、子序列化

反过来先操作B后操作A,更满足逻辑思维,一样可以执行。通过逻辑将A、B进行连查询,不会有任何异常。如两张建立了一对一字段,在A,那么先往B写数据就更合理。...假设图书管理系统书、出版社、作者、作者详细信息四张之间的关系如下: """ 关系 1)Book 和 Publish 一对多:在多的一方 Book 2)Book 和 Author 多对多:在查询频率高的一方...更合理) """ Django orm中外字段属性详解 在建之前我们对外字段属性进行了解: 1)related_name在外设置反向查询的字段名:正向找字段名,反向找related_name...,将两张设置为级联,并将反向查询的字段名设置为detail 数据库脏数据介绍 数据库中常见的并发操作所带来了一致性问题包括:丢失的修改,不可重复读,读“脏”数据,幻读。...如果涉及到通过进行跨查询,然后再将查询数据反序列化到前台就需要用到子序列化,比如下面的例子:我们查询出版社信息的时候连带将book的该出版社所出版过的书名一并查出来。

4.3K30

【Node】sequelize 使用对象的方式操作数据库

,但是不同的数据之间是有关联的,比如 用户和 评论,所以需要之间建立联系 常用的三种关联类型就 一对一,一对多,多对多 建立这种关联通常是通过的形式,比如在 a 存放 b 中有关联的数据的...[{ id:1212, name: "xxxxxx", idCard:{ cardId:22222 } }] 因为关联需要,但是上面明显没有写明,所以 sequelize...会推断在 IdCard 为 personId,如果没有就会报错 [找不到 idCard.personId 这个字段] 自定义,在 IdCard 为 user_id 和 Person...SET NULL: 从父删除或更新对应的行,同时将子表列设为空。注意,这些在外列没有被设为NOT NULL时才有效。...2、数据库自带约束 只要在数据库定义了两关联的,那么当删除父数据时,子表关联的数据也会被自动删除。

8K20

精读《Prisma 的使用》

,唯一多出来的 posts 与 author 其实是弥补了数据库关联不直观的部分,将这些转化为实体对象,让操作时感受不到外或者多表的存在,在具体操作时再转化为 join 操作。...posts Post[] } datasource db 申明了链接数据库信息;generator client 申明了使用 Prisma Client 进行客户端操作,也就是说 Prisma Client...在模型定义,可以通过 @map 修改字段名映射、@@map 修改名映射,默认情况下,字段名与 key 名相同: model Comment { title @map("comment_title...数据库多对多关系一般通过第三张实现,第三张会存储两张之间对应关系,所以如果要显式定义其实是这样的: model Post { id Int...减少样板代码比较好理解,因为 Prisma Schema 并不会出现在代码,而稳定模型是指,只要不执行 prisma generate,数据模型就不会变化,而且 Prisma Schema 也独立于

3.5K30

【知识学习】Vue3 + Vite + Koa + TS 项目

Sequelize 主要特点 支持事务。支持一对一,一对多,多对一,多对多,关联的映射。...values(1,'童书'),(2,'电子书'),(3,'女装'),(4,'食品'),(5,'男装'),(6,'数码相机'),(7,'创意文具'),(8,'童装童鞋'); 二级分类 二级分类需要添加...dangdang.secondctgy values(6,'人文社科',2); insert into dangdang.secondctgy values(7,'教育',2); 三级分类 三级分类需要添加...,B where A.主键id=B.id select * from A inner join B on A.主键id=B.id 左连接 select * from A left...outer join B on A.主键id=B.id 查询图书分类 根据一级分类 Id ,查询所有的二三级分类 async findCtgys(firstctgyId: string) {

46031

微信小程序云开发—云函数连接MySQL

在云函数内对MySQL数据进行简单的操作 注:微信小程序APPID(请自行去地址注册https://mp.weixin.qq.com) 拉取我的代码或者创建一个新的云开发小程序 //本文章主要的代码在以下目录...创建连接MySQL云函数 可以看到我的代码已经创建好一个叫mysql的index.js云函数如下 const cloud = require('wx-server-sdk') const Sequelize...结构为一个firstName和lastName字段同为String类型 const User = sequelize.define('user', { firstName: {...found 0 vulnerabilities D:\Git\miniprogram-cloud-development\cloudfunctions\mysql> 安装好后我们需要把它同步到云开发的环境,...Navicat 可以看到我们远端的MySQL数据库已经创建了USER并且插入一条数据。 总结 个人比较推荐直接使用云开发自带的数据库,因为速度快,用连MySQL的话会收到网络波动的影响。

4.7K20

前端构建 DevOps - 搭建 DevOps 基础平台(上)

前言 在上一个博客,已经通过 Egg 对 Gitlab Api 进行了基础的封装,本文将会围绕 DevOps 流程介绍项目设计(偏后台),需要读者具备一定的后端知识储备。...报错率,提高项目研发质量 提供快速回滚指定版本功能,确保新版本崩溃情况下能够快速恢复服务 此项目是从零开发,在正式开发之前,需要先将需求理清,以免设计出现严重缺陷,造成后期开发或拓展困难(路可以走的慢,但不要走偏...如果你参考上一篇博客已经将环境搭建完毕,可以使用 npm install --save-dev sequelize-cli 安装 sequelize-cli 工具,再通过下面配置生成需要的。...:undo:all` 回退到初始状态 # npx sequelize db:migrate:undo:all 设计基础 ?...将 gitlab project 与 branch 常用的数据落库到本地,再根据项目需求新增字段,大概的结构如上图所示 结合上述项目流程设计,说明一下结构关系 工程 project 会管理多个分支

1.6K10

RestQL:现代化的 API 开发方式

假设上述 60 张,40 张存的是资源类的数据,其余 20 张为关系类的数据,也就是说每张和 20 张都要进行关联,每个关联也需要四种 CRUD 操作,那么又要增加40 * 20 * 4 =...根据 RESTful 规则的约定,我们应该把访问 user 的 API 路径定义为 /user,并把 CRUD 的访问方法映射到 HTTP 协议的四种方法:GET、POST、PUT、DELETE。...上述的例子还会衍生出其他的数据操作,不仅仅只有 GET,这里不一一列举了。 抽象出规则 上一节,列举了要提供一个的数据访问 API,大概要实现哪些路由。...所有不以_开头的,都会被放进sequelize#query()的where参数。...} 所有以_开头的,都会被放进sequelize#query()的参数,和where保持平级。

1.6K50

治电EggJS开发规范

2.7.1 安装 $ yarn add egg-sequelize mysql2 2.7.2 启用与配置 在plugin.js启用Sequlize exports.sequelize = {...= app => { const {类型} = app.Sequelize const 首字母大写的名 = app.model.define('名', { 字段名: {...将需要生成的的字段填入文件的up方法里,在down填入删除的方法。 若需生成数据,则使用yarn migrate:up。 若需要删除数据,则使用yarn migrate:down。...migrations文件命名为'时间+名.js'。 数据库迁移要在up方法要添加id字段、时间字段createAt和updateAt。...资源就是URL所表示的,URL需要符合以下规范: 只能是名词不能是动词 小写字符 不可使用下划线'_',可以使用连字符'-' CRUD不可出现在URL 参数列表要用encode 避免层级过深的URI,

4.5K10
领券