美文网首页Python Web
Flask应用示例4 - 通过flask_script.Mana

Flask应用示例4 - 通过flask_script.Mana

作者: 红薯爱帅 | 来源:发表于2018-12-14 19:35 被阅读0次

1. 引入方式

# 方式1
from manager import Manager
# 方式2
from flask_script import Manager, Shell

2. Demo源码

  • manager.py
# -*- coding: utf-8 -*-

from flask_script import Manager, Shell
from flask import Flask
import users

def _make_context():
    try:
        import ipdb as pdb
    except ImportError:
        import pdb
    return dict(pdb=pdb)

app = Flask(__name__)
manager = Manager(app)

manager.add_command('shell', Shell(make_context=_make_context))
manager.add_command('user', users.manager)

if __name__ == '__main__':
    manager.run()
  • user.py
# -*- coding: utf-8 -*-

from flask_script import Manager, Command, Option

# ===== Variable =====
manager = Manager(description="user cmd")

# python manage.py user hello1
@manager.command
def hello1():
    print 'hello boy'

# python manage.py user hello2 -n bb
@manager.option('-n', '--name', dest='name', default='joe')
def hello2(name):
    print 'hello', name

# python manage.py user hello3 -n cc
class Hello(Command):
    def __init__(self, default_name = 'kevin'):
        self.default_name = default_name

    def get_options(self):
        return [
            Option('-n', '--name', dest='name', default=self.default_name)
        ]

    def run(self, name):
        print 'hello', name

manager.add_command('hello3', Hello())
  • 执行结果
$ python manage.py user hello1
hello boy
$ python manage.py user hello2 -n bb
hello bb
$ python manage.py user hello3 -n cc
hello cc
$ python manage.py runserver
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
...
$ python manage.py shell
# 问题,引入pdb之后,shell有什么用

3. 参考文档

相关文章

网友评论

    本文标题:Flask应用示例4 - 通过flask_script.Mana

    本文链接:https://www.haomeiwen.com/subject/bvghcftx.html