Flask最强攻略 - 跟DragonFire学Flask - 第十六篇 Flask-Migrate
终于到了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相关推荐
- Flask最强攻略 - 跟DragonFire学Flask - 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法
https://www.cnblogs.com/DragonFire/p/9259999.html 是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jin ...
- Flask最强攻略 - 跟DragonFire学Flask - 第十五篇 Flask-Script
其实本章就是为下一章做的铺垫啦,但是也要认真学习哦 Flask-Script 从字面意思上来看就是 Flask 的脚本 是的,熟悉Django的同学是否还记得Django的启动命令呢? python ...
- Flask最强攻略 - 跟DragonFire学Flask - 第三篇 Flask 中的 request 之 先知道有这么个东西...
每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...
- 教妹学Java(二十六):static 关键字解析
你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第二十六篇,今天我们来谈谈 Java 的 static 关键字--什么是静态变量?什么是静态方 ...
- 教妹学Java(三十六):Java 多态的好处
你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第三十六篇,今天我们来谈谈 Java 中的多态--多态有什么好处? 本专栏中的代码已收录到 G ...
- 猿人学题库十六题——js加密_表情包+sojson6.0——满天坑
猿人学题库十六题--js加密_表情包+sojson6.0 1. 首先 进入 浏览器的开发者工具, 进去后首先还是 无线debug ,找到 debugg 对应的行数,右击选择 never pause ...
- 跟我学SpringCloud | 第十二篇:Spring Cloud Gateway初探
SpringCloud系列教程 | 第十二篇:Spring Cloud Gateway初探 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如 ...
- 从零开始学Pytorch(十六)之模型微调
微调 在前面的一些章节中,我们介绍了如何在只有6万张图像的Fashion-MNIST训练数据集上训练模型.我们还描述了学术界当下使用最广泛的大规模图像数据集ImageNet,它有超过1,000万的图像 ...
- (素材源码)猫猫学IOS(十六)UI之XIB自定义Cell实现团购UI
猫猫分享,必须精品 素材代码地址:http://download.csdn.net/detail/u013357243/8572001 原文地址:http://blog.csdn.net/u01335 ...
- C语言成长学习题(十六)
72.假设一维数组中存放互不相同的十个整数,要求根据输入的下标值,即可直接删除. 1 #include <stdio.h> 2 3 int mydel (int *a, int n, in ...
最新文章
- Scrapy 学习笔记(-)
- iptables配置-Linux系统安全防火墙
- 2018年自主车企销量目标完成情况 这几家企业估计要凉
- 在win10下安装自带的linux,并进行相应的配置
- DLL中传递STL参数(如Vector或者list等)会遇到的问题[转载]
- mysql什么情况下使用索引
- 关于操作系统的学习总结
- 【软件开发底层知识修炼】十四 快速学习GDB调试一 入门使用
- ucGUI 架构介绍
- matlab思考,关于Matlab编程的思考(待续)
- 【Elasticsearch】如何设计可扩展的 Elasticsearch 数据存储的架构
- python进阶09并发之五生产者消费者
- element ui 表格中的渲染有多个状态判断的情况
- js Object.is 相等判断
- steam账号被盗找回概率_如何找回忘记的Steam密码
- 关于DOS/DDOS攻击和防御
- NodeJS+七牛云实现图片上传
- 图文并茂:超可爱的12星座猫
- 解决百度云管家导入未完成下载任务
- AI自己写代码让智能体进化!OpenAI的大模型有“人类思想”那味了
热门文章
- java jpa 字段 关联_jpa查询关联表懒加载数据initialize proxy no session
- mysql建帐号数据库出现反斜线_[MySQL FAQ]系列 -- 账号密码包含反斜线时怎么办-阿里云开发者社区...
- 思科路由器上配置了rip但是没有生成动态路由表_思科路由器 RIP、OSPF、EIGRP 路由协议最简单的配置实例详解...
- C++ printf输出
- java排序方式(冒泡,选择,JDK)
- linux基础之软件包管理
- JVM常量池和八种基本数据及字符串
- 二十五、JAVA多线程(四、生产者和消费者问题)
- 电影图标:杀死比尔(Kil Bill)
- 黄老师架构师课程笔记(一)反射