Flask框架之八SQLAlchemy -orm

在这里插入图片描述

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.属性名 = xxx
 	session.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求和

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

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页