一: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

最新文章

  1. php知识分享
  2. jQuery学习之jQuery Ajax用法详解
  3. Find celebrity
  4. DBA优化SQL采用的WITH AS 用法简介
  5. Mono Compatibility
  6. 项目中的报错信息,maven报错等的总结
  7. 第四章 JavaScript操作DOM对象
  8. Docker学习笔记 - Docker容器的日志
  9. Tornado day1
  10. ueditor富文本编辑器使用百度地图自定义动态地图组件及兼容https及http协议
  11. 使用纳米 Protocol buffers 作为序列化数据
  12. 微信小程序实现显示和隐藏控件-头像-取值-bindblur事件
  13. Mermaid js与流程图、甘特图..
  14. NSIS学习记录の----查找注册表某个键是否存在
  15. 小程序学习-iPhone X适配
  16. [Fine Uploader] 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]
  17. kibana 安装
  18. IOS开发使用GCD后台运行
  19. Spring Boot中配置文件application.properties使用
  20. Vue根据URL传参来控制全局 console.log 的开关

热门文章

  1. 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql
  2. 我的 Kafka 旅程 - Producer
  3. MatrixOne从入门到实践08——SSB性能测试
  4. Bug改不完,迭代总延期,咋办?
  5. CVPR2022 Oral OGM-GE阅读笔记
  6. 2022-08-12-esp32把玩记-②_用Micropython点ssd1306_oled屏幕
  7. VS Code For Web 深入浅出 -- 进程间通信篇
  8. Python 根据两个字段排序 中文排序 汉字排序 升序 降序
  9. 前端JS获取路由地址里的参数QueryString取值
  10. 栈溢出漏洞利用流程——以syncbrs为例