mange

发布时间:2019-02-28 18:26:52编辑:auto阅读(2425)

    from flask import Flask
    app = Flask(__name__)
    manager = Manager(app)
    
    1. 重写Command
        class ShellCommand(Command):
            """这里是用help查到信息"""
        # option_list = {
        #     Option("--name", "-n", dest="name"),  这两种方法创建命令, 都会爆红, 但是能正常用
        # }
     <<<def __init__(self, default_name="name"):
            self.default_name = default_name
    
        def get_options(self):
            return [
                Option("-n", "--name",dest="name", default=self.default_name)
            ]>>>
            def run(self):
                return "这是继承重写方法"
        # 1. 直接提交, 必须在run之前执行
        manager.add_command("sc", ShellCommand())
        # 2. 在run()中以字典形式提交
        manager.run({{"sc": ShellCommand()}})
        
        注意:
            1.1 方法有两种1为注释的, 2是<<<xx>>>中的
            
    
    2. 装饰command
        @manager.command
        def cmd1(name=False):
            """这里是用help查到信息"""
            return "这是command创建的", "YES" if name else "NO"
        
        注意:
            2.1 这里创建带参数的调用方法:
                python file_name.py cmd1 -n      # 执行       ("这是command创建的", "YES")
                python file_name.py cmd1 --name  # 执行       ("这是command创建的", "YES")
                python file_name.py cmd1         # 不完整执行  ("这是command创建的", "NO") 数据没有传递到函数中
                
    3. 装饰option
        @manager.option("-n", "--name", help="这里是用help查到信息", dest="name", default="aa")
        def cmd2(name):
            return "这是option创建的", name
        注:
            3.1 dest: 关键字参数的参数, 必须和命令--name中的name对应 可省略
            3.2 default: 关键字参数的默认值                        可省略
    

      

关键字