终于到了Flask-Migrate,之前在学习Flask-SQLAlchemy的时候,有的同学就提过类似的问题,Flask支持 makemigration / migrate 吗?

答案在这里该诉你,如果你同时拥有两个三方组件 Flask-Script 和 Flask-Migrate 那么就支持这样的动作

首先你要有几个准备工作

第十五章的知识回顾

第十五章的项目下载

废话不多说,直接进入正题

1.安装 Flask-Migrate

pip install Flask-Migrate

2.将 Flask-Migrate 加入到 Flask 项目中 - PS: 注意了 Flask-Migrate 是要依赖 Flask-Script 组件的

 1 import MyApp
 2 # 导入 Flask-Script 中的 Manager
 3 from flask_script import Manager
 4
 5 # 导入 Flask-Migrate 中的 Migrate 和 MigrateCommand
 6 # 这两个东西说白了就是想在 Flask-Script 中添加几个命令和指令而已
 7 from flask_migrate import Migrate,MigrateCommand
 8
 9 app = MyApp.create_app()
10 # 让app支持 Manager
11 manager = Manager(app) # type:Manager
12
13 # Migrate 既然是数据库迁移,那么就得告诉他数据库在哪里
14 # 并且告诉他要支持那个app
15 Migrate(app,MyApp.db)
16 # 现在就要告诉manager 有新的指令了,这个新指令在MigrateCommand 中存着呢
17 manager.add_command("db",MigrateCommand) # 当你的命令中出现 db 指令,则去MigrateCommand中寻找对应关系
18 """
19 数据库迁移指令:
20 python manager.py db init
21 python manager.py db migrate   # Django中的 makemigration
22 python manager.py db upgrade  # Django中的 migrate
23 """
24
25
26 @manager.command
27 def DragonFire(arg):
28     print(arg)
29
30 @manager.option("-n","--name",dest="name")
31 @manager.option("-s","--say",dest="say")
32 def talk(name,say):
33     print(f"{name}你可真{say}")
34
35 if __name__ == '__main__':
36     #app.run()
37     # 替换原有的app.run(),然后大功告成了
38     manager.run()

MyApp/manager.py

3.执行数据库初始化指令

python manager.py db init

此时你会发现你的项目目录中出现了一个好玩儿的东西

接下来的操作就和Django中一样了,在这里就不做演示了

本章结束

转载于:https://www.cnblogs.com/DragonFire/p/10365963.html

Flask最强攻略 - 跟DragonFire学Flask - 第十六篇 Flask-Migrate相关推荐

  1. Flask最强攻略 - 跟DragonFire学Flask - 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法

    https://www.cnblogs.com/DragonFire/p/9259999.html 是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jin ...

  2. Flask最强攻略 - 跟DragonFire学Flask - 第十五篇 Flask-Script

    其实本章就是为下一章做的铺垫啦,但是也要认真学习哦 Flask-Script 从字面意思上来看就是 Flask 的脚本 是的,熟悉Django的同学是否还记得Django的启动命令呢? python ...

  3. Flask最强攻略 - 跟DragonFire学Flask - 第三篇 Flask 中的 request 之 先知道有这么个东西...

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...

  4. 教妹学Java(二十六):static 关键字解析

    你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第二十六篇,今天我们来谈谈 Java 的 static 关键字--什么是静态变量?什么是静态方 ...

  5. 教妹学Java(三十六):Java 多态的好处

    你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第三十六篇,今天我们来谈谈 Java 中的多态--多态有什么好处? 本专栏中的代码已收录到 G ...

  6. 猿人学题库十六题——js加密_表情包+sojson6.0——满天坑

    猿人学题库十六题--js加密_表情包+sojson6.0 1.  首先 进入 浏览器的开发者工具, 进去后首先还是 无线debug ,找到 debugg 对应的行数,右击选择 never pause ...

  7. 跟我学SpringCloud | 第十二篇:Spring Cloud Gateway初探

    SpringCloud系列教程 | 第十二篇:Spring Cloud Gateway初探 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如 ...

  8. 从零开始学Pytorch(十六)之模型微调

    微调 在前面的一些章节中,我们介绍了如何在只有6万张图像的Fashion-MNIST训练数据集上训练模型.我们还描述了学术界当下使用最广泛的大规模图像数据集ImageNet,它有超过1,000万的图像 ...

  9. (素材源码)猫猫学IOS(十六)UI之XIB自定义Cell实现团购UI

    猫猫分享,必须精品 素材代码地址:http://download.csdn.net/detail/u013357243/8572001 原文地址:http://blog.csdn.net/u01335 ...

  10. C语言成长学习题(十六)

    72.假设一维数组中存放互不相同的十个整数,要求根据输入的下标值,即可直接删除. 1 #include <stdio.h> 2 3 int mydel (int *a, int n, in ...

最新文章

  1. Scrapy 学习笔记(-)
  2. iptables配置-Linux系统安全防火墙
  3. 2018年自主车企销量目标完成情况 这几家企业估计要凉
  4. 在win10下安装自带的linux,并进行相应的配置
  5. DLL中传递STL参数(如Vector或者list等)会遇到的问题[转载]
  6. mysql什么情况下使用索引
  7. 关于操作系统的学习总结
  8. 【软件开发底层知识修炼】十四 快速学习GDB调试一 入门使用
  9. ucGUI 架构介绍
  10. matlab思考,关于Matlab编程的思考(待续)
  11. 【Elasticsearch】如何设计可扩展的 Elasticsearch 数据存储的架构
  12. python进阶09并发之五生产者消费者
  13. element ui 表格中的渲染有多个状态判断的情况
  14. js Object.is 相等判断
  15. steam账号被盗找回概率_如何找回忘记的Steam密码
  16. 关于DOS/DDOS攻击和防御
  17. NodeJS+七牛云实现图片上传
  18. 图文并茂:超可爱的12星座猫
  19. 解决百度云管家导入未完成下载任务
  20. AI自己写代码让智能体进化!OpenAI的大模型有“人类思想”那味了

热门文章

  1. java jpa 字段 关联_jpa查询关联表懒加载数据initialize proxy no session
  2. mysql建帐号数据库出现反斜线_[MySQL FAQ]系列 -- 账号密码包含反斜线时怎么办-阿里云开发者社区...
  3. 思科路由器上配置了rip但是没有生成动态路由表_思科路由器 RIP、OSPF、EIGRP 路由协议最简单的配置实例详解...
  4. C++ printf输出
  5. java排序方式(冒泡,选择,JDK)
  6. linux基础之软件包管理
  7. JVM常量池和八种基本数据及字符串
  8. 二十五、JAVA多线程(四、生产者和消费者问题)
  9. 电影图标:杀死比尔(Kil Bill)
  10. 黄老师架构师课程笔记(一)反射