web开发框架-模型

2.flask使用数据库

mysql是关系型数据库,所有数据均存储在表中,表为不同的实体建模,表中的列为实体的数据属性。(主键的值是表中各行的唯一标识;外键引用主键)行之间的这种联系叫做关系。

2.1 ORM

ORM用于实现面向对象编程语言里不同类型系统的数据之间的转换。(极端情况下,完全可以不需要再写SQL语句)

2.3 flask-sqlalchemy连接数据库

先创建一个flask-SQLALchemy提供的SQLALchemy类对象,需要传入当前的app。(必须先创建这个数据库,才能进行连接)需要在app.config中设置SQLALCHEMY_DATABASE_URI来配置数据库的连接。

测试连接是否成功

app.app_context():创建了一个应用程序上下文,可以在没有实际HTTP请求的情况下执行与FLASK应用程序相关的操作。

with:表示他会在代码块执行完毕后被正确的关闭或释放。

db.engine.connect()表示正在建立与数据库的连接。

2.4 基于flask-sqlalchemy使用ORM

建立ORM模型与数据库表映射关系

更新内容

2.5 基于ORM进行crud

更新

其中 db.create_all()要考虑是否每次都执行

创建ORM对象

① get查找:根据主键进行查找(删除操作后,id值不存在,但是id列仍然存在并继续工作)

②all()查找:查找全部数据

③first查找:获取第一条满足条件数据

4.1 filter查找

4.2 filter查找+all()

5.1 filter_by查找

5.2 filter_by查找+all()

获取了所有username为"root"的User对象并返回列表形式

5.3 filter_by查找+first()

获取了第一个username为"root"的User对象信息

⑥filter_by查找+order_by

⑦group_by查找

⑧filter_by查找+limit

⑨filter拓展(精确查找)

删除操作

修改操作

找到第一个username为‘ffff’的用户并对其password进行修改

2.6 ORM模型与外键

2.6.1 表关系

表关系分为3种{一对多,一对一,多对多}

2.6.2 外键

创建外键是通过db.ForeignKey实现

更新article class

2.6.3 一对多

2.6.3.1 flask中back_populates使用

back_populates需要绑定双方都进行属性绑定

2.6.3.2 flask中back_ref

只需要在一对多关系中多的实体类新增backref即可完成双向绑定(只写一条)

注意:多人开发时建议使用back_populates

2.6.4 一对一

实现一对一,要在flask-sqlalchemy中通过db.relationship传递uselist=False即可实现将“多”设置为“一”。同时,为了在数据库层面实现一对一,还需要在外键上设置unique=True

user=User.query.get(5)是为了从User表中获取主键为5的记录

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aka毕妍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值