Flask学习与项目实战7:一对一关系、管理表的映射与ORM、项目重构

举报
bdi洲 发表于 2022/05/20 00:05:08 2022/05/20
【摘要】 上篇文章中提到了一对多关系, 也就是一个user对应多篇文章,这是一对多的关系,那么如何设置一对一的关系呢。 一对一关系 下面还是一对多的关系。 通过更改代码如下即可设置一对一关系。 迁移...

上篇文章中提到了一对多关系, 也就是一个user对应多篇文章,这是一对多的关系,那么如何设置一对一的关系呢。

一对一关系

下面还是一对多的关系。
在这里插入图片描述

通过更改代码如下即可设置一对一关系。

在这里插入图片描述
在这里插入图片描述

迁移工具 Flask-Migrate插件

如果上述的模型想要映射到数据库当中,需要进行 db.create_all()函数来进行操作。但是存在一个弊端,如果模型中新增删除了一个字段等,就不能更新处理,即create_all不会处理的。(可能需要重新跑一遍代码?)

首先导入migrate即可,那就是migrate = Migrate(app,db)

在这里插入图片描述

在这里插入图片描述
首先初始化一个仓库。

在这里插入图片描述
然后是第二行命令,这样就会生成一个迁移脚本。

接下来就可以迁移脚本映射到表当中。

在这里插入图片描述
初始化动作只需要做一次,只需要最开始做一次就可以了。如果增加了一个新的字段,那么回控制台终端当中,执行 flask db migrate -m “add xxx” 就可以生成了新的迁移脚本了,然后flask db upgrade就可以了。

只需要专心在flask代码层面进行操作就可以了,然后在控制台进行命令控制就很简单了。

项目重构

配置重构

模型、配置都写在一个文件,会比较乱。所以需要进行重构。

在原app文件中将配置文件放在config中,然后在app中导入即可,app.config.from_object(config) 就可以了 。
在这里插入图片描述

在这里插入图片描述

模型重构

把各种db模型都放在models中。在app中导入刚才移出去的模型。
即: from models import Article,User,UserExtension。
在这里插入图片描述

这个时候会报错,因为models中使用了from app import db文件。

一般最开始程序刚运行的时候会最先运行app文件,然后 从app代码的第一行代码执行,结果到from models的时候找到了models文件,但是models又是从app中导入db,所以会造成循环引用。

所以可以把db放在新的.py中。(后续再绑定app)
在这里插入图片描述

在这里插入图片描述
这个时候model就可以解决问题了。

然后从app中导入db,from exts import db,接着在app中绑定app。

在这里插入图片描述

所以现在的关系是这样的:大家都去exts引用导入db。这个时候不存在循环引用了。
在这里插入图片描述

文章来源: blog.csdn.net,作者:洲的学习笔记,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_51484460/article/details/122794034

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。