当前位置: 代码迷 >> 综合 >> Flask框架之八SQLAlchemy -orm
  详细解决方案

Flask框架之八SQLAlchemy -orm

热度:95   发布时间:2024-03-10 01:19:15.0

在这里插入图片描述

Flask框架之SQLAlchemy -orm

一、ORM

  • SQL语句重负使用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近似的SQL语句
  • 很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要修改,就要去修改这些逻辑,很容易漏掉某些SQL语句的修改
  • 写SQL时容易忽略web安全问题
  • 使用ORM的优点:
  • 易用性:使用ORM做数据库的开发可以有效的减少SQL语句,写出来的模型也更加直观
  • 性能损耗小
  • 设计灵活:可以轻松写出来复杂的查询
  • 可移植性:SQLAlchemy封装了底层的数据库,实现支持多个关系型数据库,包括MySQL,SQLite
    在这里插入图片描述
    在这里插入图片描述

二、使用SQLAlchemy

  • 连接数据库
  • 创建Base基类
  • 创建类,添加属性,添加数据类型约束
  • 创建session
  • 添加创建实例添加数据
  • 添加数据到数据库
  • 提交数据
    在这里插入图片描述
    在这里插入图片描述

三、SQLAlchemy数据的增删改查

1.增加数据

def add_data():user = User(添加属性的数据)session.add(user) sesssion.commit()

在这里插入图片描述
在这里插入图片描述
2.删除数据

def delete_data():date = session.query(Food).first()session.delete(date)session.commit()

3.修改数据

def update_data():data = session.query(Usre).filter(条件判断).all() data.属性名 = xxxsession.commit()

在这里插入图片描述
在这里插入图片描述
4.查询数据

def search_data():data = session.query(Usre).filter(条件判断).all()print(data)

在这里插入图片描述
在这里插入图片描述

四、SQLAlchemy的常用类型

代码 类型
Integer 整形
Float 浮点类型
Boolean 传递True/False进去
DECIMAL 定点类型
enum 枚举类型
Date 传递datetime.date()进去,如(2020 10 29)
DateTime 传递datetime.datetime()进去。如(2020 10 29 21 36 21)
Time 传递datetime.time()进去。如( 21 36 21)
String 字符类型,使用时需要指定长度,区别于Text类型
Text 文本类型
LONGTEXT 长文本类型

在这里插入图片描述
在这里插入图片描述

五、column常用参数和聚合函数

  • 常用参数
参数 用法
default 默认值:当你设置了default=xxx的时候,你如果没有传递这个数据,那么数据库会显示你设置的这个值
nullable 是否可空:nullable=False 表示不能为空
primary_key 是否为主键
unique 是否唯一: 当你设置了这个参数的时候,那么统一列的数据不能相同,相同就报错
autoincrement 是否自动增长
onupdate 更新的时候执行的函数
name 该属性在数据库中的字段映射
  • 聚合函数
函数 意义
func.count 统计行的数量
func.max 求最大值
func.min 求最小值
func.avg 求平均值
func.sum 求和

在这里插入图片描述
在这里插入图片描述