简介
Flas-Script的作用是可以通过命令行的形式操作Flask,
例如可通过命令跑一个开发版本的服务器,设置数据库和定时任务等.
Install Flask-Script
- 进入虚拟环境执行pip install flask-script
C:\pyenv\flask-env>cd Scripts
C:\pyenv\flask-env\Scripts>activate
(flask-env) C:\pyenv\flask-env\Scripts>pip install flask-script
Collecting flask-script
Downloading Flask-Script-2.0.6.tar.gz (43kB)
100% |████████████████████████████████| 51kB 189kB/s
Requirement already satisfied: Flask in c:\pyenv\flask-env\lib\site-packages (from flask-script)
Requirement already satisfied: click>=2.0 in c:\pyenv\flask-env\lib\site-packages (from Flask->flask-script)
Requirement already satisfied: itsdangerous>=0.21 in c:\pyenv\flask-env\lib\site-packages (from Flask->flask-script)
Requirement already satisfied: Werkzeug>=0.7 in c:\pyenv\flask-env\lib\site-packages (from Flask->flask-script)
Requirement already satisfied: Jinja2>=2.4 in c:\pyenv\flask-env\lib\site-packages (from Flask->flask-script)
Requirement already satisfied: MarkupSafe>=0.23 in c:\pyenv\flask-env\lib\site-packages (from Jinja2>=2.4->Flask->flask-script)
Building wheels for collected packages: flask-script
Running setup.py bdist_wheel for flask-script ... done
Stored in directory: C:\Users\Mark\AppData\Local\pip\Cache\wheels\35\38\2a\5a4aef4aa51913c135f5d2ff6f8552ad0db06667cd3e48ef2d
Successfully built flask-script
Installing collected packages: flask-script
Successfully installed flask-script-2.0.6
(flask-env) C:\pyenv\flask-env\Scripts>
使用
- 如果直接在主manager.py中写命令,在命令执行:python manager.py 命令
- 如果把一些命令集中写在另一个文件中,引入到manager.py,在manager.add_command(arg1,arg2)时参数1是指定的前缀,参数2是映入的MANAGER对象
- 后一种使用方式需要在命令行执行:python manager.py 前缀 命令
--------主manager------
from flask_script import Manager
from db_manager import DBMANAGER
from flask_script_app import app
manager = Manager(app)
manager.add_command('db', DBMANAGER)
@manager.command
def runserver():
print("服务器跑起来了...")
if __name__ == '__main__':
manager.run()
---------db.manager------------
from flask_script import Manager
DBMANAGER = Manager()
@DBMANAGER.command
def init():
print("完成数据库初始化...")
@DBMANAGER.command
def migrate():
print("数据库迁移成功...")
------------终端执行--------------
(flask-env) d:\git_project\flask_app>python manager.py runserver
服务器跑起来了...
(flask-env) d:\git_project\flask_app>python manager.py db init
完成数据库初始化...
(flask-env) d:\git_project\flask_app>python manager.py db migrate
数据库迁移成功...
(flask-env) d:\git_project\flask_app>