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

Python SQLAlchemy入门教程

本文将以Mysql举例,介绍sqlalchemy基本用法。其中,Python版本为2.7,sqlalchemy版本为1.1.6。 一....**优点: ** 简洁易读:将数据表抽象为对象(数据模型),更直观易读 可移植:封装了多种数据库引擎,面对多个数据库,操作基本一致,代码易维护 更安全:有效避免SQL注入 为什么要用sqlalchemy...使用 概念和数据类型 概念 概念 对应数据库 说明 Engine 连接 驱动引擎 Session 连接池,事务 由此开始查询 Model 表 类定义 Column Query 若干行 可以链式添加多个条件...数据库表模型类通过__tablename__和表关联起来,Column表示数据表。 4....通常这两个方法都会用到,所以一定要掌握它们区别: filter filter_by 支持所有比较运算符,相等比较用比较用== 只能使用"=","!

3.2K30

SQLAlchemy 使用总结

最近在做项目耗时任务优化,将这些耗时任务接口函数放到 airflow 上,但是一些接口函数涉及到很多数据库操作,就需要使用第三方库操作数据库 db 数据,提倡使用 ORM 操作数据库,所以就选择了这个...SQLAlchemy 这个库,用是它 ORM 模式。...然后调用它方法来对数据表数据进行增删改查 orm使用类应该满足如下四个要求: 继承自declarative_base对象 包含__tablename__,这是数据库中使用表名 包含一个或多个属性...,它们都是column对象 确保一个或多个属性组成主键 会话(session)是 SQLAlchemy ORM 和数据库交互方式。...为创建会话,SQLAlchemy 提供了一个 sessionmaker 类,这个类可以确保在整个应用程序能够使用相同参数创建会话。

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

【一周掌握Flask框架学习笔记】Flask中使用数据库(使用Flask-SQLAlchemy管理数据库)

更多 binds 信息见用 Binds 操作多个数据库。 SQLALCHEMY_ECHO 如果设置为Ture, SQLAlchemy 会记录所有 发给 stderr 语句,这对调试有用。...如果为True,允许有空值,如果为False,不允许有空值 default 为这定义默认值 常用SQLAlchemy关系选项 选项名 说明 backref 在关系另一模型添加反向引用 primary...join 在SQLAlchemy无法自行决定时,指定多对多关系二级联结条件backref 在关系另一模型添加反向引用 primary join 明确指定两个模型之间使用联结条件 uselist...db.session.add(role) 添加到数据库session db.session.add_all([user1, user2]) 添加多个信息到session db.session.commit...查询id为4用户[3种方式] # filter_by直接用属性名,比较用=, filter用类名.属性名,比较用== # filter_by用于查询简单列名,不支持比较运算符 # filter比filter_by

4.1K20

Flask 入门系列教程(五)

定义模型 模型这个术语表示程序使用持久化实体。在 ORM ,模型一般是一个 Python 类,类属性对应数据库表。...下面是一些常用选项 ? 表关系 在我们当前数据模型下,角色与用户是一对多关系,一个角色可以属于多个用户,而一个用户只可以是一个角色。...常用过滤器与执行函数 从上面的视图函数我们看到,使用了 filter_by,那么我们再看下其他过滤器 ?...filter_by() 等过滤器在 query 对象上调用,返回一个更精确 query 对象。多个过滤器可以一起调用,直到获得所需结果。 下面我们再来看下执行函数 ?...迁移环境只需要创建一次,这会在我们项目根目录下创建一个 migrations 文件夹,其中包含了自动生成配置文件和迁移版本文件夹。 如下图 ?

3.2K31

Flask数据库过滤器与查询集

添加到address模型person_id被定义为外键,就是这个外键建立起了联系。传给db.ForeignKey()参数’person_id’表明,这一值是person表中行id值。...添加到person表address属性代表这个关系面向对象视角。对于一个person实例,其address属性将返回与person相关联多个地址。...大多数情况下,db.relationship()都能自行找到关系外键,但有时却无法决定把哪一作为外键。...例如如果address模型中有两个或以上定义为person模型外键,SQLAlchemy就不知道该使用哪。...如果关系两侧都在同一个表,这种关系称为自引用关系。在关注,关系左侧是用户实体,称为”关注者”;右侧也是用户实体,称为”被关注者”。

6.8K10

seaborn可视化数据框多个元素

seaborn提供了一个快速展示数据库元素分布和相互关系函数,即pairplot函数,该函数会自动选取数据框中值为数字元素,通过方阵形式展现其分布和关系,其中对角线用于展示各个元素分布情况...,剩余空间则展示每两个元素之间关系,基本用法如下 >>> df = pd.read_csv("penguins.csv") >>> sns.pairplot(df) >>> plt.show()...函数自动选了数据框3元素进行可视化,对角线上,以直方图形式展示每元素分布,而关于对角线堆成上,下半角则用于可视化两之间关系,默认可视化形式是散点图,该函数常用参数有以下几个 ###...#### 3、 x_vars和y_vars 默认情况下,程序会对数据框中所有的数值进行可视化,通过x_vars和y_vars可以用列名称来指定我们需要可视化,用法如下 >>> sns.pairplot...通过pairpplot函数,可以同时展示数据框多个数值型元素关系,在快速探究一组数据分布时,非常好用。

5.1K31

Flask-SQLAlchemy操作数据库

日期和时间 LargeBinary str 二进制文件 ### 常用SQLAlchemy选项 选项名 说明 primary_key 如果为True,代表表主键 unique 如果为True,代表这不允许出现重复值...index 如果为True,为这创建索引,提高查询效率 nullable 如果为True,允许有空值,如果为False,不允许有空值 default 为这定义默认值 ### 常用SQLAlchemy...,而使用标量值 order_by 指定关系记录排序方式 secondary 指定多对多关系关系表名字 secondary join 在SQLAlchemy无法自行决定时,指定多对多关系二级联结条件...常用SQLAlchemy查询过滤器 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit() 使用指定值限定原查询返回结果...,一个角色可以有多个用户,一个用户只能属于一个角色。

1.5K20

慕课网Flask高级编程实战-9.书籍交易模型(数据库事务、重写Flask对象)

1.判断当前书籍是否可以加入赠送清单 1.如果isbn编号不符合规则,不允许添加 2.如果isbn编号对应书籍不存在,不允许添加 3.同一个用户,不能同时赠送同一本书籍 4.一个用户对于一本书不能既是赠书者...2.添加赠送清单,增加鱼豆 添加赠送清单,增加鱼豆对应了两个数据库操作,如果其中一个在执行过程失败了,那么另一个也不能提交,这用到了数据库事务。...由于我们删除操作都是逻辑删除,所以在查询时候应该默认查询status=1记录(即未删除记录),但是如果在每一个filter_by里都这么写,就太麻烦了,我们思路是重写默认filter_by...那么我们就需要先了解原来SQLAlchemy继承关系 FlaskSQLAlchemy中有一个BaseQuery,BaseQuery继承了orm.Query(原SQLAlchemy类),这里面有filter_by...函数;也就是说BaseQuery通过继承orm.Query拥有了filter_by能力 flask_sqlalchemy ... ... class SQLAlchemy(object): Query

82120

新闻推荐实战(七):Flask简介及基础

Flask作为该项目中会用来作为系统后台框架,作为一个算法工程师需要了解一些关于开发知识,因为在实际工作中经常调试线上代码来调用策略或模型。...本文将对Flask以及一些基本使用进行了简单介绍,方便大家快速理解项目相关内容。.... # 创建新用户 2.1.2 匹配动态URL 动态URL用于当需要将同一类URL映射到同一个视图函数处理,比如,使用同一个视图函数 来显示不同用户个人信息。...其中Column() 表示数据表,Integer()和String()表示数据库数据类型。...2.4.4 操作数据库 创建完连接之后,我们需要借助sqlalchemysession来创建程序与数据库之间会话。换句话来说,需要通过session才能利用程序对数据库进行CURD。

1.4K20

唯一索引比普通索引快吗?运行原理是什么?

在开始深入讨论唯一索引和普通索引性能差异之前,让我们先了解一下它们基本概念。普通索引普通索引是数据库表一种数据结构,它存储了某或多值以及对应行位置,以便加速查询操作。...普通索引允许存在重复值,因此多行可以具有相同索引键值。这使得普通索引适用于需要快速查找特定值或范围查询。...唯一索引唯一索引也是一种索引,它与普通索引类似,但有一个重要不同之处:唯一索引要求索引值必须是唯一,不允许重复。这意味着每个索引键值只能对应一行数据。...唯一索引通常用于确保表不包含重复值,例如,电子邮件地址或身份证号码。唯一索引性能优势现在让我们来讨论为什么唯一索引在某些情况下可能比普通索引更快。...通过将唯一索引应用于某,数据库可以确保该值不会重复,从而防止数据重复或错误插入。这有助于保持数据一致性和准确性。示例演示下面我们将通过一个简单示例演示唯一索引和普通索引性能差异。

58210

python数据库操作mysql:pymysql、sqlalchemy常见用法详解

Integer,String 映射关系: 数据库 映射 模块【如果可以从多个模块处导入,用 | 分隔】【方式太多,可能有漏,但不影响导入】 表 Table from sqlalchemy...多个筛选条件使用“,”隔开 常见可用筛选条件【User是一个表对应类】: 使用filter,filter_by时: User.name=='lisi' User.name.like...relationshipforeign_keys用途:当有多个relationship时,为了避免ORM混淆多个relationship,特别的标注哪个外键是哪个relationship relationship...secondary用途:在多对多关系,填入值是中间表,维持两边表关系。...一对多关系,外键关联 以一个老师能做一个班班主任此外还能做另一个班副班主任为例【即一个老师能对应多个班级】 一对多关系创建核心是relationshipforeign_keys 附

3.6K10
领券