Flask学习(六) - Flask-Script

Flask-Script

学过Django的同学应该知道在Django里面是通过python manage.py runserver这一系列的指令来完成对服务器的启动执行的,Flask-script就是仿照这一点来生成的,同样需要建立一个manage.py,在里面进行命令初始化

安装

pip install flask-script

使用

首先需要建立manage.py文件

  1. 如果你直接在主manage.py文件里面写命令,那么只需要在终端直接输入python manage.py command_name
  • 首先要引入当前的app(只是个名字,从主执行文件调用),然后传入给Manager对象,在建立命令函数时,注意上方有添加一个@manager.command的修饰器,最后在主函数里执行即可
from flask_script import Manager
from app import app

manager = Manager(app)

@manager.command
def runserver():
    print("it's running")


if __name__ == '__main__':
    manager.run()

python manage.py runserver(这里的runserver只是指令名字)

image.png
  1. 如果存在命令分离,比如将某一类的功能模块命令单独开,则在执行时需要先在主文件里面引入,然后在终端先执行父命令再执行子命令,详见后文示例
  • 这里新建一个db_script.py来处理数据库方面的指令,因为最后会在主文件中调用执行,所以这里不用传入app名字,直接生成Manager()对象即可

db_script.py
这里简单定义了两个方法init 和 migrate,显示两条输出语句

from flask_script import  Manager

DBManager = Manager()

@DBManager.command
def init():
    print("初始化")
    
@DBManager.command
def migrate():
    print("数据迁移")

manage.py

  • 在主文件里首先引入了刚才新建立的DBManager对象,然后用add_command方法建立新的执行命令并设定名字(这里是db)
from flask_script import Manager
from app import app
from db_script import DBManager
manager = Manager(app)

@manager.command
def runserver():
    print("it's running")

manager.add_command('db', DBManager)


if __name__ == '__main__':
    manager.run()

执行

python manage.py db init或者python manage.py db migrate


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。