前言 我们可以在Flask-SQLAlchemy字段中添加unique=True设置该字段为唯一约束,如果需要2个字段联合唯一,需用到UniqueConstraint() 联合唯一约束 比如一个书名可以有不同的出版社...,但是同一个出版社不能有重复的书名。...Flask-SQLAlchemy 中 使用 db.UniqueConstraint() 设置联合唯一约束 class Books(db.Model): __tablename__ = 'book..._data) File "D:\demo\rest_api_flask\venv\lib\site-packages\pymysql\err.py", line 143, in raise_mysql_exception
概览 为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效...约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种: # NOT NULL :非空约束,指定某列不能为空; # UNIQUE : 唯一约束,指定某列或者几列组合不能重复 # PRIMARY...KEY :主键,指定该列的值可以唯一地标识该列记录 # FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性 返回顶部 NOT NULL 是否可空,null表示空,非字符串...返回顶部 PRIMARY KEY 主键为了保证表中的每一条数据的该字段都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行数据。 主键可以包含一个字段或多个字段。...AUTO_INCREMENT 约束字段为自动增长,被约束的字段必须同时被key约束 ? ?
sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系 假设 page_index=1,page_size=10;所有分页查询不可以再跟...)).slice((page_index - 1) * page_size, page_index * page_size) #filter语句后面可以跟order_by语句 注释:此方法和第一种相同的效果
SQLAlchemy是一个基于Python实现的ORM框架。...安装命令 pip install flask-sqlalchemy 注意sqlalchemy 依赖于 pymysql 模块,确保pymysql 被正确安装 pip install pymysql #导入第三方连接库...sql点金术 from flask_sqlalchemy import SQLAlchemy #建立对象 app = Flask(__name__) #载入配置文件 app.config.from_pyfile...charset=utf8' #指定配置,用来省略提交操作 #app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True #建立数据库对象 db = SQLAlchemy...(app) #建立数据库类,用来映射数据库表,将数据库的模型作为参数传入 class User(db.Model): #声明表名 __tablename__ = 'user' #建立字段函数 id
前言 查询今天的数据,或者查询某一天的数据 SQL DATE() function使我们能够从特定的历史或当前时间戳值访问日期值。...DATE() 函数 Date()函数返回从传递的datetime表达式中提取的日期。...= '2022-11-14' 获取今天的数据 方法一: 最原始的方法是给个开始时间和结束时间,用between start = datetime.strptime("2022-11-14 00:00:00...AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。...data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。
简介:约束用于确保数据库满足特定的商业规则。...在Oracle中,约束包括以下几种: 1、not null 非空约束 该劣质不能为null 2、unique 唯一约束 该列值不能重复,但是可以为null...3、primary key 主键约束 not null+unique 4、foreign key 外键约束 5、check 注:一张表只能由一个主键(该主键可以使联合主键-
前言 在我们做web开发的时候,经常需要用到与数据库交互,因为我们的数据通常都是保存在数据库中的,如果有人需要访问,就必须与数据库访问,所以今天我们介绍一个Flask中与数据库交互的插件---Flask-Sqlalchemy...一、安装并导入 pip install flask-sqlalchemy from flask_sqlalchemy import SQLAlchemy import os import pymysql...as p from flask import Flask 二、基本用法 今天我们要了解的是Mysql数据库,所以这里重点介绍连接Mysql数据库的方法。...+pymysql://root:123456@127.0.0.1:3306/people' app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True # 每次请求结束后都会自动提交数据库中的变动...db.Model"类 from flask_sqlalchemy import SQLAlchemy from flask import Flask import config app=Flask(__
答: 他是基于SQLAlchemy框架针对于Flask进行优化与封装的数据库框架, 可以帮助开发者快速进行应用开发与不同数据库之间的数据存储, 还能结合Flask-Migrate实现数据库的迁移与回滚;...扩展安装: pip install flask-sqlalchemy Step 2.Flask-SQLAlchemy 扩展配置: 描述: 需要使用Flask 的 app = Flask(__name...@localhost:3306/Flask_Hello" Step 4.项目环境决定数据库链接自定义配置 (1) 开发环境(Development):开发人员把代码拉取到本地环境中进行开发,等开发完成后推送到开发环境中...#日期和时间 # 7.二进制类型 LargerBinary 2.字段选项 常用的SQLAlchemy中的列选项: 选项名 说明 primary_key 如果为True,代表表的主键 autoincrement...中的SQLAlchemy设置数据模型的外键(ForeignKey)时候无法启动项目; 错误信息: File "D:\Program Files (x86)\Python37-32\lib\site-packages
默认值对象是单独存储的,删除表的时候,DEFAULT约束会自动删除,但是默认值对象不会被删除。 创建默认值对象后,需要将其绑定到某列或者用户自定义的数据类型上。...其语法格式如下: DROP DEFAULT {default} [,…n] 例如: drop default d_grade 2.规则 规则用以限制存储在表中或用户自定义数据类型的值,是独立的数据库对象...将规则绑定到列或用户自定义数据类型时,规则才起作用。 表中的每列或每个用户定义数据类型只能和一个规则绑定。但每列可应用多个CHECK约束。 如果要删除规则,应确定规则已经解除绑定。...③UNIQUE约束 (1)UNIQUE约束在列集内强制执行值的唯一性。 (2)对于UNIQUE约束中的列,表中不允许有两行包含相同的非空值。...④CHECK约束 (1)CHECK约束通过限制用户输入的值来加强域完整性。 (2)它指定应用于列中输入的所有值的布尔(取值为TRUE或FALSE)搜索条件,拒绝所有不取值为TRUE的值。
使用 Flask-SQLAlchemy 从数据库中查询数据,可以指定查询的条件。数据库中的数据很多,用户需要的只是某一条数据或满足某个条件的数据。...在 Flask-SQLAlchemy 中,指定查询条件是通过数据对象的 query 对象来实现的,query 对象中实现了很多常用的过滤方法,可以方便地实现过滤查询。 一、准备数据库和数据表 1....from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config[...这些数据用于后面使用 Flask-SQLAlchemy 进行过滤查询的素材。...[Phone_name: IPhone, Phone_name: Mi, Phone_name: HUAWEI] 四、Flask-SQLAlchemy 关系字段和关联查询 在上面创建的两张表中,已经设置了关系字段
数据的完整性 数据完整性是指数据的准确性和逻辑一致性,用来防止数据库中存在不符合语义、无效数据或错误数据等。...MySQL中,数据完整性通常使用约束来实现,本任务主要的约束包括PRIMARY KEY约束、NOT NULL约束、DEFAULT约束、UNIQUE约束、CHECK约束和FOREIGH KEY约束。...PRIMARY KEY 又称为主键约束,定义表中构成主键的一列或多列。 主键用于唯一标识表中的每条记录,作为主键的字段值不能为NULL且必须唯一,可以是单一字段,也可以是多个字段的组合。...CHECK约束是列输入数据值的验证规则,列中输入数据必须满足CHECK约束的条件,否则无法写入数据库。...外键约束实现了表间的引用完整性,当主表中被引用列的值发生变化时,为了保证表间数据的一致性,从表的中与该值相关的信息也应该相应更新,这就是外键约束的级联更新和删除。
数据完整性 1.域完整性:---------匹配完整性:非空、缺省 字段/列 2.实体完整性:-------匹配完整性:主键、唯一键 记录/行 3.引用完整性:-------匹配完整性:外键 表与表之间...约束:constraint MySQL中的约束分类 主键:primary key 唯一键:unique 非空:not null 缺省:default 外键:foreign key 主键、唯一键...constraint 约束名 unique(字段名); 删除约束的数据 先删除子表数据,再删除主表数据 级联删除 on delete cascade 级联更新 on update cascade 关掉...mysql 外键约束 SET FOREIGN_KEY_CHECKS=0; 打开mysql 外键约束 SELECT @@FOREIGN_KEY_CHECKS; 删除外键 注意:此语句在删除外键后不能关联删除该外键自动产生的约束...删除指定名称的索引 alter table 表名 drop index 索引名称; 提醒:对于有主外关联的表,删除表中数据,如果无删除的级联操作,那么删除主表数据之前,必须先删除从表对应数据
自定义过滤器 过滤器的本质是函数。当模板内置的过滤器不能满足需求,可以自定义过滤器。...自定义过滤器有两种实现方式: 一种是通过Flask应用对象的 add_template_filter 方法 一种是通过装饰器来实现自定义过滤器 重要:自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器...示例:自定义数组反转过滤器 方式一 通过调用应用程序实例的add_template_filter方法实现自定义过滤器。...该方法第一个参数是函数名,第二个参数是自定义的过滤器名称: def do_list_reverse(list): list.reverse() return list app.add_template_filter...装饰器传入的参数是自定义的过滤器名称。
SQLALCHEMY采用adjacency list pattern来表示类的自引用。...(Integer,ForeignKey('node.id')) data=Column(String(50)) children=relationship('Node') 对于如下图所示的结构...如果想建立多对一的关系,需要在relationship()中添加remote_side属性,remote_side属性包含一列或多列。
前言 在查询的时候,经常需要先判断是否存在结果,再进行下一步操作。...这里总结了判断查询结果是否存在的几种方式 count() 统计个数 count()方法返回记录条数,使用示例 with app.app_context(): count = Students.query.filter...当查询结果为唯一时,返回该对象 当查询结果为不止一个时,抛异常sqlalchemy.exc.MultipleResultsFound...Students.query.filter(Students.name == 'yy').scalar() print(res) first() 第一个结果 first() 会从查询结果中返回第一个值...obj.first(): print("查询到结果") else: print("未查询到结果") all() 全部 all()方法返回全部数据,返回的是一个
关系模型中有三类完整性约束,分别是:实体完整性,参照完整性,用户定义完整性 ---- 实体完整性 定义:实体完整性是用于保证关系数据库中每个元组都是可区分的,唯一的。...参照完整性 参照完整性中的参照,说白了就是数据表里的外键。...这种针对某一具体关系数据库的约束条件称为用户定义的完整性,它反映某一具体应用所涉及的数据必须满足的语意要求。...Additionally 另外,还有一种说法,说关系模型有四种完整性约束,而另外那种完整性约束即为—— 域完整性 域完整性:(Domain Integrity)是指数据库表中的列必须满足某种特定的数据类型或约束...其中约束又包括取值范围、精度等规定 不过我觉得,域完整性其实就是所谓的用户定义的完整性… 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160200.html原文链接
Flask-SQLAlchemy 连接数据库参考: Flask-SQLALchemy 连接数据库 连接数据库后,接下来继续介绍对数据库的基本操作。 一、数据库准备和创建表 1....创建一个数据库 使用我之前创建好的数据 MyDB_one ,如果没有就创建。用哪个数据库是自定义的,只要有一个数据库供使用即可。...使用 Flask-SQLAlchemy 创建数据表 创建一个 flask_alchemy_tb.py 文件,编写创建数据表的代码。...Time: 日期和时间 三、在数据表中添加、查询、修改、删除数据 在 Flask-SQLAlchemy 中,进行添加、查询、修改、删除操作,都是由 SQLAlchemy 对象的数据库会话管理来实现的。...查询数据表中的数据 在 Flask-SQLAlchemy 中,查询操作是通过数据库模型类对象的 query 对象来完成的。
记录第一次创建时间,default falsk中如下两个字段 create_time1 = db.Column(db.DateTime, default=datetime.now) create_time2...= db.Column(db.DateTime, default=datetime.now()) 两者的区别: 第一个插入的是期望的, 数据的插入时间,每条数据插入时可自动根据当前时间生成 第二条是一个固定的时间..., 程序部署的时间,所有的数据都是这个固定时间 实际上默认值在mysql数据库没有体现, 都是sqlalchemy在插入数据时加的 如果想想在生成的table中有默认值使用server_default...name = db.Column(db.String(45), server_default='hh') 因为mysql的datetime类型的数据不支持函数, 所以没法指定默认值位当前时间 记录每次修改的时间
Flask的常用扩展包: Flask-SQLalchemy:操作数据库; Flask-migrate:管理迁移数据库; Flask-Mail:邮件; Flask-WTF:表单; Flask-Bable:...表单 在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能 以最常见的登录验证为例,这里以普通实现方式和WTF表单方式实现进行比较。...import Flask, render_template, request, flash # 导入wtf扩展的表单类 from flask_wtf import FlaskForm # 导入自定义表单需要的字段...验证输入的值在数字范围内 URL 验证URL AnyOf 验证输入值在可选列表中 NoneOf 验证输入值不在可选列表中 数据库 在flask中,可以利用SQLAlchemy来进行数据库的操作。...SQLAlchemy是一个关系型数据库框架,它提供了高层的ORM和底层的原生数据库的操作。flask-sqlalchemy是一个简化了SQLAlchemy操作的flask扩展。
在Python生态中,目前较为流行的ORM模块有SQLAlchemy和peewee,类比Java中有Hibernate和MyBatis。...本文关注SQLAlchemy的快速上手,展示一个简单的 CRUD 示例,并结合使用 Faker 生成测试数据。...示例 SQLAlchemy支持大多数关系型数据库,示例中使用的是PostgreSQL,用法及说明大多已在源代码中注释,具体请参考如下: from faker import Factory from sqlalchemy...from sqlalchemy import Column, String, Integer, create_engine # 创建对象的基类: Base = declarative_base()...(一) SQLAlchemy(二) 使用SQLAlchemy 示例源码 欢迎关注我的个人公众号:超级码里奥 如果这对您有帮助,欢迎点赞和分享,转载请注明出处
领取专属 10元无门槛券
手把手带您无忧上云