Flask 模型基础

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   自动生成的  会做一些记录

      自己创建的表

 

表结构改变,就需要重新迁移  

 

posted @ 2023-06-02 10:12  ji哩咕噜  阅读(25)  评论(0编辑  收藏  举报