Python 如何将flask脚本选项传递给子级

Python 如何将flask脚本选项传递给子级,python,flask-script,Python,Flask Script,我有以下三个模块(基于米格尔·格林伯格的优秀著作): \uuuu init\uuuuu.py from flask import Flask from config import config def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) from .

我有以下三个模块(基于米格尔·格林伯格的优秀著作):

\uuuu init\uuuuu.py

from flask import Flask
from config import config

def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    return app
import os
from app import create_app
from app.import_file import Import_File_CLI
from flask.ext.script import Manager, Shell, Command

app = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(app)

manager.add_command('import_file', Import_File_CLI())

manager.add_option('-v', dest='verbosity', help='how verbose output should be - the more vs, the more verbose', action='count', required = False)

if __name__ == '__main__':
    manager.run()
from flask.ext.script import Command, Option
from flask import current_app
import logging

class Import_File_CLI(Command):
    "Imports files from the command line"

    option_list = (
        Option(help="file to import", dest="filename"),
    )

    def run(self, filename, verbosity=0):

        if verbosity == 1:
            log_level = logging.WARNING
        elif verbosity == 2:
            log_level = logging.INFO
        elif verbosity > 2:
            log_level = logging.DEBUG
        else:
            log_level = None
manage.py

from flask import Flask
from config import config

def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    return app
import os
from app import create_app
from app.import_file import Import_File_CLI
from flask.ext.script import Manager, Shell, Command

app = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(app)

manager.add_command('import_file', Import_File_CLI())

manager.add_option('-v', dest='verbosity', help='how verbose output should be - the more vs, the more verbose', action='count', required = False)

if __name__ == '__main__':
    manager.run()
from flask.ext.script import Command, Option
from flask import current_app
import logging

class Import_File_CLI(Command):
    "Imports files from the command line"

    option_list = (
        Option(help="file to import", dest="filename"),
    )

    def run(self, filename, verbosity=0):

        if verbosity == 1:
            log_level = logging.WARNING
        elif verbosity == 2:
            log_level = logging.INFO
        elif verbosity > 2:
            log_level = logging.DEBUG
        else:
            log_level = None
import_file.py

from flask import Flask
from config import config

def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    return app
import os
from app import create_app
from app.import_file import Import_File_CLI
from flask.ext.script import Manager, Shell, Command

app = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(app)

manager.add_command('import_file', Import_File_CLI())

manager.add_option('-v', dest='verbosity', help='how verbose output should be - the more vs, the more verbose', action='count', required = False)

if __name__ == '__main__':
    manager.run()
from flask.ext.script import Command, Option
from flask import current_app
import logging

class Import_File_CLI(Command):
    "Imports files from the command line"

    option_list = (
        Option(help="file to import", dest="filename"),
    )

    def run(self, filename, verbosity=0):

        if verbosity == 1:
            log_level = logging.WARNING
        elif verbosity == 2:
            log_level = logging.INFO
        elif verbosity > 2:
            log_level = logging.DEBUG
        else:
            log_level = None
我将进行大量的文件操作,并且我希望能够从命令行进行一些测试/调试,因此将有许多用于不同用途的CLI模块。我希望能够控制我得到的输出的详细程度,因此我定义了详细程度选项。我不明白的是如何将该选项实际传递到Import\u File\u CLI类中。我知道我可以将一个选项添加到选项列表中,但最后我不得不将它添加到我创建的每个CLI类中,而我真的希望它是一个全局选项。那么,如何访问在子类的主管理器中设置的选项呢

文档中有这样一个例子,但它在同一个模块中,不是子类模块。我可以将该选项传递到工厂函数中,然后设置应用程序范围内的默认值,但这似乎也不太理想,因为我大多数时候不需要设置它。我是否可能需要创建一个_CLI子管理器