胖蔡说技术
随便扯扯

使用flask-script实现Flask项目定制shell功能

更多Flask阅读指南:

Flask基础学习

Flask 扩展

Flask 进阶

Flask提供了很多有用的扩展程序,我们可以通过使用flask-script扩展来实现软件的运行、配置数据库、以及自定义shell命令的目的。如下,介绍如何去使用flask-script这个扩展。

安装

$ pip install flask-script

使用

如下,通过一个简单的示例来了解下如何使用flask-script这个扩展。

#main.py
from flask_script import Manager,Shell,Server,prompt_bool
form app import app,db,PasteFile

manager =  Manager(app)

def make_shell_context():
    return {
        'db':db,
        'PasteFile':PasteFile,
        'app':app,
    }

@manager.command
def dropdb():
    if prompt_bool('是否确认删除所有数据?'):
        db.drop_all()

@manager.option('-h','--filehash',dest='filehash')
def get_file(filehash):
    paste_file =  PasteFile.query.filter_by(filehash=filehash).first()
    if not paste_file:
        print '文件不存在'
    else:
        print('URL is {}'.format(paste_file.get_url('i')))

manager.add_command('shell',Shell(make_context=make_shell_context))
manager.add_command('runserver',Server(
    user_debugger=True,user_reloader=True,host='0,0,0,0',port=9000
))

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

使用命令格式如下:

$ python main.py <command-name>

// 示例

$ python main.py runserver

如上,通过flask-script实现定制命令:

  • dropdb:删除数据库
  • get_file:通过hash获取文件路径
  • runserver:运行服务
  • shell:自带三个内置变量的shell
赞(0) 打赏
转载请附上原文出处链接:胖蔡说技术 » 使用flask-script实现Flask项目定制shell功能
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏