Flask 学习笔记
一、sqlalchemy 常用数据类型
-
Integer
:整形。 -
Float
:浮点类型(四舍五入保留 4 为小数)。 -
DECIMAL
:定点类型(可规定数据长度及小数位数)。 -
Boolean
:传递 True 、 False 进去,在数据库中的显示 1 和 0。 -
enum
:枚举类型(只能输入 Enum 所包含的数值。如:男,女)。 -
Date
:传递 datetime.date() 进去,数据库中存储年月日
。 -
Time
:传递 datetime.time() 进去,数据库中存储时分秒
。 -
DateTime
:传递 datetime.datetime() 进去,数据库中存储年月日 时分秒
。传入datetime(2020, 4, 20, 21, 35, 23)
-
String
:字符类型,使用时需要指定长度,区别于 Text 类型。 -
Text
:文本类型。 -
LONGTEXT
:长文本类型。
# 这些数据类型都是要导入的
from sqlalchemy import Column, Integer, String, Float, DECIMAL, Boolean, Enum, Date, DateTime, Time
from sqlalchemy.dialects.mysql import LONGTEXT
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column('fullname', String(60))
price = Column(Float)
# 总共有 20 位, 保留 5 位小说
price = Column(DECIMAL(20, 5))
is_delete = Column(Boolean)
gender = Column(Enum('男', '女'))
create_time = Column(DateTime)
content = Column(LONGTEXT)
# onupdate 可以也写一个函数 修改记录的时候触发更新
update_time = Column(DateTime, onupdate=datetime.now())
二、Column 常用参数
-
default
:默认值。 -
nullable
:是否可空。nullable=False 不允许为空
-
primary_key
:是否为主键。 -
unique
:是否唯一,存放的内容唯一。 -
autoincrement
:是否自动增长。 -
onupdate
:更新的时候执行的函数。例如文件的修改时间,就可以在修改了数据后触发执行该函数。 -
name
:该属性在数据库中的字段名字
name = Column(String(60), name='fullname')
# 在数据库中显示的该字段名为 fullname
三、query 可用参数
3.1、模型对象
article = session.query(Article).first()
# 打印对象
print(article)
3.2、模型中的属性
article = session.query(Article).first()
# 打印对象属性
print(article.title)
3.3、聚合函数
-
count
:统计行的数量。 -
avg
:求平均值。 -
max
:求最大值。 -
min
:求最小值。 -
sum
:求和。
# 要先导入 func
from sqlalchemy import func
# 统计行的数量
result = session.query(func.count(Article.id)).first()
print(result)
# 平均值
result = session.query(func.avg(Article.price)).first()
print(result)
# 最大值
result = session.query(func.max(Article.price)).first()
print(result)
# 最小值
result = session.query(func.min(Article.price)).first()
print(result)
# 求和
result = session.query(func.sum(Article.price)).first()
print(result)