Flask-Script 从字面意思上来看就是 Flask 的脚本

是的,熟悉Django的同学是否还记得Django的启动命令呢? python manager.py runserver 大概是这样对吧

其实Flask也可以做到,基于 Flask-Script 就可以了

1.安装 Flask-Script

pip install Flask-Script

2.将 Flask-Script 加入到 Flask 项目中

 1 import MyApp
2 # 导入 Flask-Script 中的 Manager
3 from flask_script import Manager
4
5 app = MyApp.create_app()
6 # 让app支持 Manager
7 manager = Manager(app)
8
9 if __name__ == '__main__':
10 #app.run()
11 # 替换原有的app.run(),然后大功告成了
12 manager.run()

MyApp/manager.py

3.使用命令启动 Flask 项目

python manager.py runserver

4.启动项目并更改配置参数(监听IP地址,监听端口)

python manager.py runserver -h 0.0.0.0 -p 9527

5.高级操作 - 自定制脚本命令

5.1.方式一 : @manager.command

 1 import MyApp
2 # 导入 Flask-Script 中的 Manager
3 from flask_script import Manager
4
5 app = MyApp.create_app()
6 # 让app支持 Manager
7 manager = Manager(app) # type:Manager
8
9 @manager.command
10 def DragonFire(arg):
11 print(arg)
12
13 if __name__ == '__main__':
14 #app.run()
15 # 替换原有的app.run(),然后大功告成了
16 manager.run()

MyApp/manager.py

python manager.py DragonFire 666

5.2.方式二 : @manager.opation("-短指令","--长指令",dest="变量名")

 1 import MyApp
2 # 导入 Flask-Script 中的 Manager
3 from flask_script import Manager
4
5 app = MyApp.create_app()
6 # 让app支持 Manager
7 manager = Manager(app) # type:Manager
8
9 @manager.command
10 def DragonFire(arg):
11 print(arg)
12
13 @manager.option("-n","--name",dest="name")
14 @manager.option("-s","--say",dest="say")
15 def talk(name,say):
16 print(f"{name}你可真{say}")
17
18 if __name__ == '__main__':
19 #app.run()
20 # 替换原有的app.run(),然后大功告成了
21 manager.run()

MyApp/manager.py

python manager.py talk -n 赵丽颖 -s 漂亮
python manager.py talk --name DragonFire --say NB-Class

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

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

Flask-Script-Migrate的更多相关文章

  1. flask+script命令行交互工具

    Project name :Flask_Plan templates:templates static:static 首先说,我们flask比django方便的地方是所有的模块都可以自己选,你不喜欢s ...

  2. Flask-Session SQLAlchemy Script Migrate wtforms

    Flask-session Flask-session跟框架自带的session有什么区别呢~ 框架自带的session是通过请求上下文~放入到Local中的~那如果我们想把session放入别的地方 ...

  3. flask的migrate

    https://blog.csdn.net/kevin_qq/article/details/51777190 这个方法可以: https://www.cnblogs.com/caicairui/p/ ...

  4. Flask script 内的Shell 类 使用

    1.集成Python shell 每次自动shell会话都要导入数据库实例和模型,很烦人.为了避免一直重复导入,我们可以做些配置让Flask-Script的Shell命令自动导入特定的对象.若想把对象 ...

  5. flask中migrate和scipt进行连用

    近期态度消极了,并且还忙着学php,所以可能flask框架的进度不会像之前那么快了.但是还是要保证跟之前高的质量滴.

  6. Flask deployment on gunicorn with flask script

    https://stackoverflow.com/questions/34265870/flask-deployment-on-gunicorn-with-flask-script 依赖 Flask ...

  7. 狗书无敌,天下第一(flask基础)

    为什么选择使用flask? 和其他框架相比, Flask 之所以能脱颖而出,原因在于它让开发者做主,使其能对程序具有全面的创意控制. 在 Flask 中,你可以自主选择程序的组件,如果找不到合适的,还 ...

  8. Python——Flask框架——程序的结构

    一.项目结构 |-flasky |-app Flask程序一般都保存在这里 |-templates/ |-static/ |main/ |-__init__.py |-errors.py |-form ...

  9. Flask组件

    组件踩坑记录 : 先注册组件在使用配置(...) flask-script Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shel ...

  10. 细说flask数据库迁移

    什么情况下要用数据库迁移? 在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库.最直接的方式就是删除旧表,但这样会丢失数据. 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化 ...

随机推荐

  1. loj#6040. 「雅礼集训 2017 Day5」矩阵(线性代数+递推)

    题面 传送门 题解 我的线代学得跟屎一样看题解跟看天书一样所以不要指望这题我会写题解 这里 //minamoto #include<bits/stdc++.h> #define R reg ...

  2. 如何在cuda内核函数中产生随机数(host端调用,device端产生)

    最近,需要在kernel函数中调用浮点型的随机数.于是上网搜了下相关资料,一种方式是自己手动写一个随机数的__device__函数,然后在调用的时候调用这个函数.另一种,原来cuda在toolkit中 ...

  3. P1472 奶牛家谱 Cow Pedigrees

    题意:问你指定二叉树有几种 1.高度为k 2.节点数为n 3.每个点的度为0或2 爆搜------->30分QAQ 首先,因为每个节点度为0或2, 所以如果n是偶数直接输出0就行了吧(嘿嘿) 如 ...

  4. 关于Intel芯片架构的发展史

    ---恢复内容开始---  当你真正的深入去行走在底层的道路上,你就会接触大量的一些貌似懂的概念性名词,比如Intel公司的x86架构,x64等等,又或者是当年的386,486等等,唉,有的时候真的是 ...

  5. Codeforces Round #503 (by SIS, Div. 2)B 1020B Badge (拓扑)

    题目大意:每个同学可以指定一个人,然后构成一个有向图.1-n次查询,从某个人开始并放入一个东西,然后循环,直到碰到一个人已经放过了,就输出. 思路:直接模拟就可以了,O(n^2) 但是O(n)也可以实 ...

  6. php实现页面跳转的几种方式

    PHP中实现页面跳转有一下几种方式,看了几个人写的不是很条理,自己整理一下 在PHP脚本代码中实现 <?php header("location:url地址") ?> ...

  7. python爬取抖音APP视频教程

    本文讲述爬取抖音APP视频数据(本文未完,后面还有很多地方优化总结) 公众号回复:抖音 即可获取源码 1.APP抓包教程,需要用到fiddler fiddler配置和使用查看>>王者荣耀盒 ...

  8. Java学习笔记day05_方法重载

    1.方法的重载overload 在同一个类中, 允许出现同名的方法, 只要方法的参数列表不同即可. 参数列表不同: 参数个数不同, 参数类型不同, 顺序不同. public class MethodO ...

  9. 搭建hadpoot平台(集群式分布)

    1.先下载VMware1.2,然后安装. 2.下载ubuntu-1.4.05-desktop-amd64.iso.下载地址:http://mirrors.aliyun.com/ubuntu-relea ...

  10. java替换word表格2007

    package demo;import java.io.FileOutputStream;import java.util.HashMap;import java.util.Iterator;impo ...