Flask-Script模块

Posted daviddd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask-Script模块相关的知识,希望对你有一定的参考价值。

Flask-Script

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

安装

pip install flask-script

使用

1. 需要创建manage.py文件

2. 首先要引入当前的app(只是个名字,从主执行文件调用),然后传入给Manager对象,
   在建立命令函数时,注意上方有添加一个@manager.command的修饰器,
   最后在主函数里执行即可
   
3. 实例:
        '''
        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()           
        '''
        

命令分离

如果存在命令分离,比如将某一类的功能模块命令单独开,则在执行时需要先在主文件里面引入,然后在终端先执行父命令再执行子命令

1.创建一个db_script.py去操作数据库

这里新建一个db_script.py来处理数据库方面的指令,因为最后会在主文件中调用执行,
所以这里不用传入app名字,直接生成Manager()对象即可

from flask_script import Manager

DBManager = Manager()


@DBManager.command
def init():
    print("初始化")


@DBManager.command
def migrate():
    print("数据迁移")
    

2.manage.py文件中引入DBManager

在主文件里首先引入了刚才新建立的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()

3.执行

F:pythonflaskabc>python3 manage.py db init
初始化

F:pythonflaskabc>python3 manage.py db migrate
数据迁移

F:pythonflaskabc>python3 manage.py runserver
it's running

以上是关于Flask-Script模块的主要内容,如果未能解决你的问题,请参考以下文章

flask-script

Flask-Script

flask-script

Flask:flask-script;多app应用;wtforms;sqlchmy

flask扩展 -- flask-script

02.flask-script