flask中的模型
1.什么是模型
模型,是根据数据库中表的结构而创建出来的class。每一张表对应到编程语言中,就是一个class表中的每一个列对应到编程语言中就class中的一个属性。
2.ORM的三大特征
1.数据表(table)到编程类(class)的映射
数据库中的每一张表 对应到 编程语言中 都有一个类
在ORM中:
允许将数据表 自动 生成一个类
允许将类 自动 生成一张数据表
2.数据类型的映射
将数据库表中的字段以及数据类型 对应到 编程语言中类的属性
在ORM中
允许将表中的字段和数据类型自动映射到编程语言中
也允许将类中的属性和数据类型也自动映射到表中
3.关系映射
将数据库中表与表之间的关系 对应 到编程语言中类与类之间的关系
数据库中表与表之间的关系:
1.一对一
外键,主键,唯一约束
A表中的一条数据只能与B表中的一条数据相关联
不懂可以地址看一下:https://www.cnblogs.com/zengsf/p/9898291.html
2.一对多
外键,主键
A表中的一条数据可以与B表中的任意多条数据相关联,反之,B表中的一条数据只能与A表中一条数据相关联
https://www.cnblogs.com/zengsf/p/9900144.html
3.多对多
通过第三张关联表去关联两张表
A表中的一条数据可以与B表中的任意多条数据相关联,B表中的一条数据也可以与A表中的任意多条数据相关联
3.ORM优点
1.封装了数据库中所有的操作,大大提高了开发效率
2.可以省略庞大的数据访问层,即便不用SQL编码也能完成对数据的CRUD的操作
flask中的模型的更多相关文章
- day94:flask:Jinjia2模板引擎&flask中的CSRF攻击&Flask-SQLAlchemy的创建模型类和基本的增删改查
目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在 ...
- Flask 中的 SQLAlchemy 使用教程
Flask 是一个 python web micro framework.所谓微框架,主要是 flask 简洁与轻巧,自定义程度高.相比 django 更加轻量级. 之前一直折腾 django,得益于 ...
- Python框架学习之Flask中的数据库操作
数据库操作在web开发中扮演着一个很重要的角色,网站中很多重要的信息都需要保存到数据库中.如用户名.密码等等其他信息.Django框架是一个基于MVT思想的框架,也就是说他本身就已经封装了Model类 ...
- flask中如何生成迁移文件
在flask网站开发中,如果直接对数据库进行修改的话,风险比较高,最好的是由迁移文件生成,这样确保了数据的误操作. 在Flask中可以使用Flask-Migrate扩展,来实现数据迁移.并且集成到Fl ...
- flask中利用from来进行对修改修改时旧密码的验证
在flask中,肯定是post提交个from进行密码验证.还有一定就是修改密码肯定是登录之后才能进行对密码的修改,这么说,在浏览器中的session中一定会有用户的信息,可以通过相对应的信息去获取到相 ...
- Flask中的ORM使用
前言 ORM拓展 安装 数据库设置 使用 关系 单表操作 建表 应用表结构 CRUD 添加查找操作 更新操作 删除操作 一对多 多对多 总结 前言 最近几天接触了一下Flask,在惊叹于其简洁性的同时 ...
- Flask之自定义模型类
4.3自定义模型类 定义模型 模型表示程序使用的数据实体,在Flask-SQLAlchemy中,模型一般是Python类,继承自db.Model,db是SQLAlchemy类的实例,代表程序使用的数据 ...
- Flask中对MySQL的基本操作
在Flask-SQLAlchemy中,插入.修改.删除操作,均由数据库会话管理. 会话用 db.session 表示.在准备把数据写入数据库前,要先将数据添加到会话中然后调用 commit() 方法提 ...
- flask 中的ORM
1 响应(response) 1 什么是响应 响应就是由服务器端带给客户端的内容,对应着请求,响应可以是普通的字符串,模板 或重定向 return '普通字符串' return render_temp ...
随机推荐
- 搭建GitLab服务器
前言 每一个开发工作者无非身处2中开发环境:1.开源环境 2.闭源开发环境,若你身处闭源环境或对自己代码安全性要求较高,搭建和使用自己GitLab服务器是必不可少的环节. 可以通过各种方式搭建自己的 ...
- qt资源加载出错
-1: error: No rule to make target '../InteractivePlayer/style.qss', needed by 'debug/qrc_res.cpp'. ...
- 方便好用的 Idea mybatis 插件 MyBatisCodeHelper
优点: 1.mapper文件(即表对应的dao)与xml文件自由切换,方便代码评审: 2.自动代码生成功能提高开发效率,mysql数据库创建好表结构,写完 pojo(注意字段类型要统一用对象类型!), ...
- git Please move or remove them before you can merge.
git clean -d -fx "" 其中 x -----删除忽略文件已经对git来说不识别的文件 d -----删除未被添加到git的路径中的文件 f -----强制运行
- jquery select使用
<select class="selector"></select> 1) 设置选中值为pxx的选项 $('.selector').val('pxx'); ...
- pl/sql美化
因为这个问题曾经浪费过俺很多时间,不过今天终于发现一个小技巧,分享给大家, 在上面DDL语句前后加上begin 和 end,哈哈,再美化下试试看,DDL被成功被美化了. 具体如下: begin---① ...
- Oracle Rman 控制RMAN的备份时间,减少IO消耗
一.问题描述 由于服务器配置不高,备份策略为周末全备.周一至周六差异备份. 平时服务器CPU使用30%左右. 全备份时,开启两个通道,CPU达到70%-80%左右,业务不卡顿.不掉单,session不 ...
- 【转载四】Grafana系列教程–Grafana基本概念
在上面几篇文章中,我们介绍了Grafana的安装配置以及运行的方法,本篇文章我们就来介绍下Grafana的基本概念. 有问题欢迎加群讨论,InfluxDB&Grafana技术交流群:58048 ...
- 学react的第一天
属性 class = className for = htmlFrom jsx语法被编译了,所以可以在return里写html标签 react的属性 constructor(props){ super ...
- :组合模式:Component
#ifndef __COMPONENT_H__ #define __COMPONENT_H__ #include <iostream> #include <vector> us ...