在上一篇文章中介绍了flask连接数据库。这次介绍数据库的增删改查操作

查询数据

① 查询所有

flaskmysql flaskmySQL数据删除_flaskmysql


② 按条件查询

方式一、不需要写创建表的类,用‘=’号,filter_by(精确查找)

flaskmysql flaskmySQL数据删除_加载_02


方式二、注意字段名前要写创建表的类,一定要用‘==’号,filter(模糊查找)

flaskmysql flaskmySQL数据删除_主键_03


③ 查询第一个

flaskmysql flaskmySQL数据删除_flask_04


④ 通过主键ID查询

如果主键存在,返回一个对象

flaskmysql flaskmySQL数据删除_mysql_05


如果主键不存在,没有返回值

flaskmysql flaskmySQL数据删除_flask_06


⑤ 查询姓名以老开头的同学

flaskmysql flaskmySQL数据删除_flask_07


⑥ 查询名字以‘王’结尾的同学

flaskmysql flaskmySQL数据删除_flaskmysql_08


⑦ Not_查询

查询名字不等于‘xiaowang’的同学,not_()逻辑非,需要导包

方式一:

flaskmysql flaskmySQL数据删除_flask_09


方式二:

flaskmysql flaskmySQL数据删除_flask_10


⑧ In查询

flaskmysql flaskmySQL数据删除_flask_11


⑨ 多条件查询

flaskmysql flaskmySQL数据删除_flask_12


or_(逻辑或)和and_(逻辑与)Or查询 :

flaskmysql flaskmySQL数据删除_flask_13


And查询:

flaskmysql flaskmySQL数据删除_mysql_14


⑩ 分页查询,查询第二页,每页3条数据

flaskmysql flaskmySQL数据删除_flask_15


更新数据

更新一个字段:更新操作一定要commit

flaskmysql flaskmySQL数据删除_flask_16


删除数据

删除id为2的用户,删除也要commit

flaskmysql flaskmySQL数据删除_flaskmysql_17


外键查询

模型类

class Role(db.Model):
    __tablename__ = 'roles'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20), unique=True)

    #     在主表添加关系,与用户表产生关系,代表整个角色下的所有用户
    users = db.relationship('User', backref='role', lazy='dynamic')
    # backref='role'反向作用
    # lazy='dynamic'用到的时候关联加载
    # lazy='subquery'加载完对象后立即加载

    def __repr__(self):
        return self.name


class User(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20), unique=True)
    email = db.Column(db.String(30), nullable=True)
    is_delete = db.Column(db.Boolean, default=False)
    # 添加外键
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))

    def __repr__(self):
        return self.name

① 查询角色ID为2的所有用户

flaskmysql flaskmySQL数据删除_主键_18


flaskmysql flaskmySQL数据删除_flaskmysql_19


② 查询ID为2的用户的角色

flaskmysql flaskmySQL数据删除_flaskmysql_20

添加数据

① 添加一条数据

flaskmysql flaskmySQL数据删除_flaskmysql_21


② 添加多条数据

flaskmysql flaskmySQL数据删除_flask_22


flaskmysql flaskmySQL数据删除_flask_23