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

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

bool 布尔 Date datetime.date 时间 Time datetime.datetime 日期和时间 LargeBinary str 二进制文件 常用SQLAlchemy选项...选项名 说明 primary_key 如果为True,代表表主键 unique 如果为True,代表这不允许出现重复 index 如果为True,为这创建索引,提高查询效率 nullable...如果为True,允许有空,如果为False,不允许有空 default 为这定义默认 常用SQLAlchemy关系选项 选项名 说明 backref 在关系另一模型中添加反向引用 primary...在准备把数据写入数据库前,要先将数据添加到会话中然后调用 commit() 方法提交会话。 在Flask-SQLAlchemy中,查询操作是通过query对象操作数据。...查询id为4用户[3种方式] # filter_by直接用属性名,比较用=, filter用类名.属性名,比较用== # filter_by用于查询简单列名,不支持比较运算符 # filter比filter_by

3.8K20

Python Web 之 Flask-SQLAlchemy 框架

SQLAlchemy是Python语言一个关系型数据库框架,它提供了高层 ORM 和底层原生数据库操作,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销同时...如果设为 True,不允许出现重复 index 如果设为 True,为创建索引,提升查询效率 nullable 如果设为 True,允许使用空;如果设为 False,不允许使用空 default...Boolean 布尔 Date Python中datetime.date 日期 Time Python中 datetime.time 时间 DateTime Python中 datetime.datetime..., 返回一个新查询 filter_by() 把等值过滤器添加到原查询上, 返回一个新查询 limit() 使用是zing限制原查询返回结果数量, 返回一个新查询 offset() 偏移原查询返回结果...Update 修改数据 直接赋值给模型类字段属性就可以改变字段, 然后调用commit()方法提交会话即可 user = User.query.get(1) user.username='李四'

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

Flask_数据库

本质: 实现模型对象到关系数据库数据映射 优点: 只需要面对对象编程,不需要面向数据库编写代码 对数据库操作转化为对类属性方法操作 不用编写各种数据库SQL语句 实现了数据模型与数据库解耦...datetime.date 时间 Time datetime.datetime 日期和时间 LargeBinary str 二进制文件 SQLAlchemy 选项 选项名 说明 primary_key...如果为True,代表表主键 unique 如果为True,代表这不允许出现重复 index 如果为True,为这创建索引,提高查询效率 nullable 如果为True,允许有空,如果为False...) 第二个参数backref 为类USer申明新属性方法 第三个参数 lazy 决定了什么时候SQLAlchemy 从数据库中加载数据 如果设置为子查询方式(subquery),则会在加载完Role...对象后,就立即加载与其关联对象,这样会让总查询数量减少,但如果返回条目数量很多,就会比较慢 设置为 subquery 的话,role.users 返回所有数据列表 另外,也可以设置为动态方式(dynamic

1.3K50

Flask-SQLAlchemy安装及设置

Flask-SQLAlchemy安装及设置 SQLALchemy 实际上是对数据库抽象,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销同时,换来是开发效率较大提升...(打印sql语句) SQLALCHEMY_RECORD_QUERIES 可以用于显式地禁用或启用查询记录。查询记录 在调试或测试模式自动启用。更多信息见get_debug_queries()。...unicode 变长Unicode字符串,对较长或不限长度字符串做了优化 Boolean bool 布尔 Date datetime.date 时间 Time datetime.datetime...日期和时间 LargeBinary str 二进制文件 常用SQLAlchemy选项 选项名 说明 primary_key 如果为True,代表表主键 unique 如果为True,代表这不允许出现重复...index 如果为True,为这创建索引,提高查询效率 nullable 如果为True,允许有空,如果为False,不允许有空 default 为这定义默认 常用SQLAlchemy关系选项

3.1K50

Python 使用SQLAlchemy数据库模块

ORM(对象关系映射)是一种编程模式,用于对象与关系型数据库中表和记录进行映射,从而实现通过面向对象方式进行数据库操作。...ORM 核心概念包括: 实体(Entity): 在 ORM 中,实体是指映射到数据库表对象。每个实体对应数据库中一条记录。 属性(Attribute): 实体中属性对应数据库表中。...映射(Mapping): ORM 负责将实体属性方法映射到数据库表和操作。 会话(Session): ORM 提供了会话来管理对象生命周期,包括对象创建、更新和删除。...=datetime.datetime.now) user_value = Column(Float, default=0.0) # __repr__方法用于输出该类对象被print(...=datetime.datetime.now) user_value = Column(Float, default=0.0) # __repr__方法用于输出该类对象被print(

33610

Flask-SQLAlchemy操作数据库

字符串 UnicodeText unicode 变长Unicode字符串,对较长或不限长度字符串做了优化 Boolean bool 布尔 Date datetime.date 时间 Time datetime.datetime...日期和时间 LargeBinary str 二进制文件 ### 常用SQLAlchemy选项 选项名 说明 primary_key 如果为True,代表表主键 unique 如果为True,代表这不允许出现重复...index 如果为True,为这创建索引,提高查询效率 nullable 如果为True,允许有空,如果为False,不允许有空 default 为这定义默认 ### 常用SQLAlchemy...在准备把数据写入数据库前,要先将数据添加到会话中然后调用 commit() 方法提交会话。 - 在 Flask-SQLAlchemy 中,查询操作是通过 query 对象操作数据。...常用SQLAlchemy查询结果方法 方法 说明 all() 以列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果

1.5K20

Python SQLAlchemy入门教程

特点是操纵Python对象而不是SQL查询,也就是在代码层面考虑对象,而不是SQL,体现是一种程序化思维,这样使得Python程序更加简洁易读。...具体实现方式是将数据库表转换为Python类,其中数据列作为属性,数据库操作作为方法。...session sqlalchemy中使用session用于创建程序和数据库之间会话,所有对象载入和保存都需要通过session对象 。...Q1:add之后如何直接返回对象属性? 可以在add之后执行db.session.flush(),这样便可在session中get到对象属性。 Q2:如何进行批量插入,性能比较?...="和"><" 过滤用类名.属性名 过滤用属性名 不支持组合查询,只能连续调用filter变相实现 参数是**kwargs,支持组合查询 支持and,or和in等 改 更新数据有两种方法,一种是使用

3.1K30

Flask入门第三天

优点: - 只需要面向对象编程, 不需要面向数据库编写代码. - 对数据库操作都转化成对类属性方法操作....Boolean:bool布尔 Date:datetime.date时间 Time:datetime.datetime日期和时间 LargeBinary:str二进制文件   2.3 常用SQLALchemy...选项 primary_key:如果为True,代表表主键 unique:如果为True,代表这不允许出现重复 index:如果为True,为这创建索引,提高查询效率 nullable:如果为...True,允许有空,如果为False,不允许有空 default:为这定义默认   2.4 常用SQLALchemy关系选项 backref:在关系另一模型中添加反向引用,用于设置外键名称,...在此文中,第一个参数为对应参照类"User" 第二个参数backref为类User申明新属性方法 第三个参数lazy决定了什么时候SQLALchemy从数据库中加载数据 如果设置为子查询方式(subquery

2.7K20

小白学Flask第十一天| flask-sqlalchemy数据库扩展包(一)

查询语句也是结构化语言。 关系型数据库定义了表中表示实体数据属性。比如:商品表里有name、price、number等。...Boolean bool 布尔 Date datetime.date 时间 Time datetime.datetime 日期和时间 LargeBinary str 二进制文件 同时也给出SQLAlchemy...常用选项: 选项名 说明 primary_key 如果为True,代表表主键 unique 如果为True,代表这不允许出现重复 index 如果为True,为这创建索引,提高查询效率...传给db.ForeignKey()参数‘role.id'表明,这是roles表中相应行id。 从“一”那一端可知,添加到Role模型中users属性代表这个关系面向对象视角。...backref参数向User模型中添加一个role属性,从而定义反向关系。通过User实例这个属性可以获得对应Role模型对象,而不用再通过role_id外键获取。

2.6K30

小记 - Flask基础

模板其实是一个包含响应文本文件,用变量表示动态部分,告诉模板引擎其具体需要从使用数据中获取 使用真实替换变量,再返回最终字符串,这个过程称为渲染。...查询执行器 表模型名.query.方法() 方法 说明 all() 以列表形式返回查询所有结果 first() 返回查询第一个结果,如未查到,返回None first_or_404() 返回查询第一个结果...() 返回一个Paginate对象,它包含指定范围内结果 查询过滤器 过滤器 说明 filter(对象.属性==) 把过滤器添加到原查询上,返回一个新查询。...支持比较运算符 filter_by(属性=) 把等值过滤器添加到原查询上,返回一个新查询 limit 使用指定限定查询返回结果 offset() 偏移原查询返回结果 order_by() 根据指定条件对原查询进行排序...,返回一个新查询 group_by() 根据指定条件对原查询进行分组,返回一个新查询 关系引用 有时候需要一些属性方便查询数据,但是这些属性不能出现在数据库字段中 relationship():sqlalchemy

2.8K10

Flask入门到放弃(四)—— 数据库

主要实现模型对象到关系数据库数据映射 优点 : 只需要面向对象编程, 不需要面向数据库编写代码. 对数据库操作都转化成对类属性方法操作. 不用编写各种数据库sql语句....unicode 变长Unicode字符串,对较长或不限长度字符串做了优化 Boolean bool 布尔 Date datetime.date 日期 Time datetime.datetime...日期和时间 LargeBinary str 二进制文件 常用SQLAlchemy选项 选项名 说明 primary_key 如果为True,代表表主键 unique 如果为True,代表这不允许出现重复...index 如果为True,为这创建索引,提高查询效率 nullable 如果为True,允许有空,如果为False,不允许有空 default 为这定义默认 常用SQLAlchemy关系选项...第一个参数为对应参照类"Course" 第二个参数backref为类Teacher申明新属性方法 第三个参数lazy决定了什么时候SQLALchemy从数据库中加载数据 如果设置为子查询方式(subquery

3K20

Flask数据库过滤器与查询

() # 查询Role对象所有数据,结果是一个列表 # 这是flask-sqlalchemy封装sqlalchemy方法 li = Role.query.all() # 获得一个role类型对象...返回paginate对象,此对象用于分页 cls.query.filter(类名.属性名.like(‘%%’)) like模糊查询 cls.query.filter(类名.属性名.contains(‘...下面列出了一些常用选项: primary_key:如果设置为True,这就是表主键 unique:如果设置为True,这不允许出现重复 index:如果设置为True,为这创建索引,提升查询效率...添加到address模型中person_id被定义为外键,就是这个外键建立起了联系。传给db.ForeignKey()参数’person_id’表明,这一是person表中行id。...这一属性可替代person_id访问 person模型,此时获取是模型对象,而不是外键

6.8K10

Flask 数据库相关

常用SQLAlchemy选项 选项名 说明 primary_key 如果为True,代表表主键 unique 如果为True,代表这不允许出现重复 index 如果为True,为这创建索引...,提高查询效率 nullable 如果为True,允许有空,如果为False,不允许有空 default 为这定义默认 常用SQLAlchemy关系选项 关系型数据库使用关系把不同表中行联系起来...: 添加到Role模型中users属性代表这个关系面相对象视角。...这一属性可以替代role_id访问Role模型,此时获取是模型对象,而不是外键。 除了一对多以外,还有其他关系类型。 、 、 。...常用SQLAlchemy查询执行器 方法 说明 all() 以列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果

93610

Flask数据库

datetime.date 时间 Time datetime.datetime 日期和时间 LargeBinary str 二进制文件 常用SQLAlchemy选项 选项名 说明 primary_key...如果为True,代表表主键 unique 如果为True,代表这不允许出现重复 index 如果为True,为这创建索引,提高查询效率 nullable 如果为True,允许有空,如果为False...,不允许有空 default 为这定义默认 常用SQLAlchemy关系选项 选项名 说明 backref 在关系另一模型中添加反向引用 primary join 明确指定两个模型之间使用联结条件...类中属性对应数据库表中。id为主键,是由Flask-SQLAlchemy管理。db.Column类构造函数第一个参数是数据库和模型属性类型。 如下示例:定义了两个模型类,用户和角色。 ?...常用SQLAlchemy查询执行器 方法 说明 all() 以列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果

3K20

Flask中ORM框架之SQLAlchemy插件入门到弃坑

__) 进行 SQLAlchemy 对象构建, 在开发过程中常常使用懒加载方法 init_app 方法进行扩展加载使用; Step 3.配置数据库连接字符串说明与实例 # 数据库连接字符串通用: 数据库...常用SQLAlchemy选项: 选项名 说明 primary_key 如果为True,代表表主键 autoincrement 如果为Trye,表示该字段自增 unique 如果为True,代表这不允许出现重复...index 如果为True,为这创建索引,提高查询效率 nullable 如果为True,允许有空,如果为False,不允许有空 default 为这定义默认 Q: 模型中外键ForeignKey...(类名.属性[类名] 操作运算符 ) # 指定查询条件(复杂) 返回Basequery对象 filter(类名.属性[类名].魔术方法("xx")) # 指定查询条件(复杂) 返回Basequery...对象 filter_by(字段 数学运算符 ) # 指定查询条件(简单) 常用于级联数据条件语法精准 # 筛选 offset() # 偏移 limit() # 限制数量 #

3K10

Flask 操作Mysql数据库 - flask-sqlalchemy扩展

它使用结构化查询语言。关系型数据库定义了表中表示实体数据属性。比如:商品表里有name、price、number等。...Unicode字符串,对较长或不限长度字符串做了优化 Boolean bool 布尔 Date datetime.date 时间 Time datetime.datetime 日期和时间 LargeBinary...str 二进制文件 常用SQLAlchemy选项 选项名 说明 primary_key 如果为True,代表表主键 unique 如果为True,代表这不允许出现重复 index 如果为...True,为这创建索引,提高查询效率 nullable 如果为True,允许有空,如果为False,不允许有空 default 为这定义默认 常用SQLAlchemy关系选项 选项名 说明...常用SQLAlchemy查询执行器 方法 说明 all() 以列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果

5.3K20

Python Web - Flask笔记5

在这个ORM模型中创建一些属性,来跟表中字段进行一一映射。这些属性必须是sqlalchemy给我们提供好数据类型。...ORM中增删改查 用session做数据增删改查操作: 构建session对象:所有和数据库ORM操作都必须通过一个叫做session会话对象来实现,通过以下代码来获取会话对象: from sqlalchemy.orm...) # 使用first方法获取结果集中第一条数据 person = session.query(Person).first() 修改对象:首先从数据库中查找对象,然后将这条数据修改为你想要数据,...可以使用default设置初始默认 name:指定ORM模型中某个属性映射到表中字段名。如果不指定,那么会使用这个属性名字来作为字段名。如果指定了,就会使用指定这个作为参数。...指定查找这个模型中所有的对象。 模型中属性。可以指定只查找某个模型其中几个属性。 聚合函数。 func.count:统计行数量。

1K10

SQLAlchemy详解

三、创建测试数据库   创建一个用于测试数据库   其中sqlalchemydb就是测试数据库 四、封装SQLAlchemyDB类   在python项目根目录下创建一个sqlalchemy_db.py...其中内容如下:   说明1:该文件sqlalchemy_db.py作用是封装一个SQLAlchemy类,为实例化sqlAlchemy对象做准备   说明2:self.engine是连接数据引擎设置...,只有设置了engine,我们才能通过sqlalchemy对象操作数据库   说明3:self.session可以理解为数据库操作对象,我们对数据库操作都是基于该session实现。   ...DateTime:日期+时间类型 Time:时间类型 Enum:枚举类型 Text:文本类型 LongText:长文本类型   5.2 SQLAlchemy字段常用约束 default:默认...query关键字,它类似于SQL中select 关键字,query参数通常可以填写三类参数 model模型对象:指定查找这个模型中所有的字段 model模型对象属性:可以指定只查找某个model中几个属性字段

20210

Flask 操作Mysql数据库 - flask-sqlalchemy扩展

它使用结构化查询语言。关系型数据库定义了表中表示实体数据属性。比如:商品表里有name、price、number等。...Unicode字符串,对较长或不限长度字符串做了优化 Boolean bool 布尔 Date datetime.date 时间 Time datetime.datetime 日期和时间 LargeBinary...str 二进制文件 常用SQLAlchemy选项 选项名 说明 primary_key 如果为True,代表表主键 unique 如果为True,代表这不允许出现重复 index 如果为...True,为这创建索引,提高查询效率 nullable 如果为True,允许有空,如果为False,不允许有空 default 为这定义默认 常用SQLAlchemy关系选项 选项名 说明...常用SQLAlchemy查询执行器 方法 说明 all() 以列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果

20.4K22
领券