flask连接mysql数据库操作

Y21


  以简单的年级表格模型为例,介绍数据库的增删改查,条件查询等操作


代码,以下:

from app import db

# 定义数据模型, 设置表格中各个字段的数据类型
class Grade(db.Model):
    g_id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    g_name = db.Column(db.String(30),nullable=False, unique=True)
    g_num = db.Column(db.Integer, nullable=True)
    __tablename__ = 'grade'
    def __init__(self, name, num):
        self.g_name = name
        self.g_num = num

# 生成表格
db.create_all()

# 数据添加
grade1 = Grade('py5',38)
grade2 = Grade('py6',28)

# session:是一块临时存储区域, 用来暂存数据库操作的数据, 最终通过commit统一提交给数据库.
# db.session.add(grade1)
# db.session.add(grade2)
# db.session.commit()

# 数据查询(查询所有数据)
# result = Grade.query.all()
# for item in result:
#     print(item.g_name, item.g_num, item.g_id)

# 按照主键值查询
# result = Grade.query.get(1)
# print(result)

# 按条件查询, filter()设置对应的过滤条件, 完成数据的过滤操作
# result = Grade.query.filter(Grade.g_num > 20).all()
# print(result)

# 数据库分页查询, paginate(参数1, 参数2, 参数3), 参数1代表查询的页码, 页码值从1开始; 参数2代表每一页查询的总数据条数; 参数3是布尔类型,用来设定当查询超出范围时, 以何种方式返回结果, 默认为True, 以404错误信息返回, 如果为False此时以空列表形式返回.
# result = Grade.query.paginate(2, 5, False)
# print(result.items)

# 获取查询结果的总数量
# count = Grade.query.count()
# 按条件查询所有满足的结果的个数
# count = Grade.query.filter(Grade.g_num > 30).count()
# print(count)

# 从查询结果中提取指定数量的数据(利用列表'切片'提取需要的对象)
# result = Grade.query.filter(Grade.g_num > 30).all()[1:3]
# print(result)

# 多条件查询语句 startswith:以指定字符开头
# result = Grade.query.filter(Grade.g_name.startswith('py'),Grade.g_num > 30).all()

from sqlalchemy import *
"""
sqlalchemy模块内置的查询条件
and_(): 并且
or_(): 或者
not_(): 非, 条件只能一个
"""

# result = Grade.query.filter(and_(Grade.g_name.startswith('py'),Grade.g_num > 30)).all()
# result = Grade.query.filter(not_(Grade.g_num > 30)).all()
# print(result)

# 数据库的删除  先查询再删除
# grades = Grade.query.filter(Grade.g_id > 9).all()
# for item in grades:
#     db.session.delete(item)
# db.session.commit()

# 数据修改  查询后修改
# grade_1 = Grade.query.filter(Grade.g_num > 30).first()
# grade_1.g_num = 25
# db.session.commit()

个人小结,定有不足,欢迎指点。
谢谢~

猜你喜欢

转载自blog.csdn.net/qq_43317529/article/details/83096668