Flask-Script-Migrate

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

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

 

转载于:https://www.cnblogs.com/qicun/p/10409455.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值