flask+script命令行交互工具

Posted jackadam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask+script命令行交互工具相关的知识,希望对你有一定的参考价值。

Project name :Flask_Plan

templates:templates

static:static

首先说,我们flask比django方便的地方是所有的模块都可以自己选,你不喜欢sqlalchemy这个orm,你可以换一个,别问我,我也不会,学的就是sqlalchemy。

django提供了一个数据库设升级工具migrate,我们也需要啊,否则后期增加功能,数据库就头痛死。

好吧,我们也给flask加上这样的功能。

我不准备再写sqlalchemy的文章了。

直接写flask_sqlalchemy吧,同时配合flask_migrate,配合flask_script

安装也很简单。

创建Flask_Plan/manage.py

from flask_script import Manager
from Flask_Plan import app

manager = Manager(app)
@manager.command
def runserver():
    print(hello)

if __name__ == __main__:
    manager.run()

直接运行这个文件

usage: managy.py [-?] {runserver,shell} ...

提示到了你需要使用 managy.py runserver 来运行。

那么我们就在该目录下 运行 

python managy.py runserver

会输出我们的hello

我是用的虚拟环境的python

命令如下图

技术分享图片

但是我们用的是pycharm,还老进这命令行干吗?

参考以下配置:

File--Settings--tools--External Tools

用右边的加号自己创建一个新的。

技术分享图片

Name是你会在菜单里看到的。

Program:是python的位置,这个是我的虚拟环境中python的位置。

Parameters:就是可选的命令参数了。

 

高级用法:如果命令多了,怎么写?都写这一个文件,找起来累死了。

把一类命令放进一个script文件

创建Flask_Plan/db_script.py

from flask_script import Manager

DBmanager = Manager()

@DBmanager.command
def init():
    print(数据库初始化)

@DBmanager.command
def migrate():
    print(数据库比较)
    
@DBmanager.command
def update():
    print(数据库升级)

编辑Flask_Plan/manage.py

from flask_script import Manager  #引入script的manager
from Flask_Plan import app        #引入启动文件的app(实例化的FLASK)
from db_script import DBmanager   #引入DB类的命令文件

manager = Manager(app)             #实例化manager
@manager.command                   #用装饰器表明下面的函数是个manager命令
def runserver():                   #函数名称就是manager命令的参数
    print(hello)

manager.add_command(db,DBmanager)  #把引入的DB命令,加入manager中

if __name__ == __main__:
    manager.run()

引入了DB类的命令文件

把命令都加入了manager

直接运行一下managy.py

提示信息:

usage: managy.py [-?] {runserver,db,shell} ...

positional arguments:
  {runserver,-db,shell}
    runserver
    -db   

看到提示-db了么?这就是我们把命令加入manager时候用的前缀,开始有点像dos命令了。

运行命令是这样的:

技术分享图片

貌似我们已经实现了django中

makemigrations

migrate

两个命令。

配置进pycharm

File--Settings--tools--External Tools

后面讲migrate的时候会用到。

 

以上是关于flask+script命令行交互工具的主要内容,如果未能解决你的问题,请参考以下文章

在命令行已经pip install flask-script,但是导包时出错

flask扩展 -- flask-script

Flask-Script

遇见Flask-Script

Flask:Flask-script插件

如何用nodejs 开发一个命令行交互工具