Flask框架(flask-sqlalchemy操作,Migrate作用,Flask迁移数据库,Flaks同步表数据)
2024-09-08 17:32:21
目录
一:flask-sqlalchemy操作
flask-sqlalchemy : 让flask更好的集成sqlalchemy
flask_migrate :类似于django的makemigrations和migrate,因为sqlalchemy不支持表修改(删除,增加字段)
1.引入:
1.在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库。最直接的方式就是删除旧表,但这样会丢失数据。
2.更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中。
2.Flask-Migrate扩展
1.在Flask中可以使用Flask-Migrate扩展,来实现数据迁移。并且集成到Flask-Script中,所有操作通过命令就能完成。
2.为了导出数据库迁移命令,Flask-Migrate提供了一个MigrateCommand类,可以附加到flask-script的manager对象上。
3.flask-sqlalchemy与slask_migrate作用
flask-sqlalchemy : 让flask更好的集成sqlalchemy
flask_migrate :类似于django的makemigrations和migrate,因为sqlalchemy不支持表修改(删除,增加字段)
4.flask-migrate初始化与迁移数据库介绍
python3 manage.py db init 初始化:项目开始只执行一次(生成migrations文件夹)
python3 manage.py db migrate 等同于 makemigartions(models模型层,增删改记录)
python3 manage.py db upgrade 等同于migrate(同步记录到models模型层内)
5.flask-sqlalchemy 操作迁移数据库
# 1.先导入,实例化得到一个对象
from flask_sqlalchemy import SQLAlchemy
# 2.生成db对象
db = SQLAlchemy()
# 3.所有表模型都继承 db.Model
# 4.在视图函数中查询那个session对象
db.session
6.导出项目依赖
# 安装:pip3 install pipreqs
#导出:pipreqs . --encoding=utf8
二:Flask-Migrate的作用
负责表结构同步
db.create_all 方法,同步表结构,create_all方法只能够对新增模型进行同步,如果模型发生修改,不能够同步
flask-migrate可以对发生变更的模型进行同步
(一) 安装插件
pip install flask-migrate
(二)使用
1、实例化
实例化步骤
2、添加命令
添加migrate命令
(三) 同步表结构
1、init 初始化,只需执行一次
初始号操作
2、migrate--将模型的变更生成迁移文件
生成迁移文件
3、upgrade
执行生成的文件,同步到表结构中
python main.py db upgrade
最新文章
- php知识分享
- jQuery学习之jQuery Ajax用法详解
- Find celebrity
- DBA优化SQL采用的WITH AS 用法简介
- Mono Compatibility
- 项目中的报错信息,maven报错等的总结
- 第四章	JavaScript操作DOM对象
- Docker学习笔记 - Docker容器的日志
- Tornado day1
- ueditor富文本编辑器使用百度地图自定义动态地图组件及兼容https及http协议
- 使用纳米 Protocol buffers 作为序列化数据
- 微信小程序实现显示和隐藏控件-头像-取值-bindblur事件
- Mermaid js与流程图、甘特图..
- NSIS学习记录の----查找注册表某个键是否存在
- 小程序学习-iPhone X适配
- [Fine Uploader] 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]
- kibana 安装
- IOS开发使用GCD后台运行
- Spring Boot中配置文件application.properties使用
- Vue根据URL传参来控制全局 console.log 的开关
热门文章
- 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql
- 我的 Kafka 旅程 - Producer
- MatrixOne从入门到实践08——SSB性能测试
- Bug改不完,迭代总延期,咋办?
- CVPR2022 Oral OGM-GE阅读笔记
- 2022-08-12-esp32把玩记-②_用Micropython点ssd1306_oled屏幕
- VS Code For Web 深入浅出 -- 进程间通信篇
- Python 根据两个字段排序 中文排序 汉字排序 升序 降序
- 前端JS获取路由地址里的参数QueryString取值
- 栈溢出漏洞利用流程——以syncbrs为例