Flask 模型
Flask默认并没有任何数据库操作的API
我们可以选择认可适合自己项目的数据库来使用
Flask中可以根据自己的选择用原声语句实现功能,也可以选择ORM(SQIAlchemy、MongoEngine)
ORM
Flask用过Model操作数据库,不管你数据库的类型是Mysql或者Sqlite,Flask自动帮你生成相应数据库类型的SQL语句,所以不需要关注SQL语句和类型,对数据的操作FLask帮我们自动完成。只要会写Model就可以了。
Flask使用对象关系映射(OBject Relational Mapping ,简称ORM)框架去操控数据库。
将对对象的操作转换成为原生SQL
优点
易用性,可以减少重复SQL
性能损耗少
设计灵活,可以轻松实现复杂查询
移植性好
# 对应关系
模型 ==> 数据库
类 ==> 表结构
类属性 ==> 表字段
一个对象 ==> 表的一行数据
# 模型Model:类
# 必须继承 db.Model
class User(db.Model):
# 表名
__tablename__ = 'tb_user'
# 定义表字段
id = db.Column(db.Intger, primary_key=True, autoincrement=True)
name = db.Column(db.String(30), unique=True, index=True)
age = db.Column(db.Integer, default=1)
sex = db.Column(db.Boolean, deafult=True)
salary = db.Column(db.Float, default=100000, nullable=Flase)
# db.Column: 表示字段
# db.Integer: 表示整数
# primary_key = True: 主键
# autoincrement = True : 自动递增
# db.String(30): varchar(30) 可变字符串
# unique =True: 唯一约束
# index=True : 普通索引
# nullable=False: 是否允许为空
# default = 1: 默认为1
执行数据迁移命令:
先在cmd或Terminal进入项目目录(app.py所在目录):
然后输入命令:
flask db init 创建迁移文件夹migrates,只调用一次
flask db migrate 生成迁移文件 他会自动检测models.py的中继承db.Model的类转换成中间类,转换成sql语句
flask db upgrade 执行迁移文件中的升级 执行迁移文件中的创建表操作
flask db downgrade 执行迁移文件中的降级 表示 撤销文件的升级
当你迁移完后,打开tables会有三张表:
alembic_version 自动生成的 会记录你的迁移文件
sqlite_master 自动生成的 会做一些记录
自己创建的表
表结构改变,就需要重新迁移
标签:Flask,基础,模型,db,Column,Model,True,迁移 From: https://www.cnblogs.com/jiqiong/p/17451016.html