Класс AppGroup
Класс AppGroup наследуется от класса Group библиотеки Click и используется для создания групп команд. Он применяется при построении интерфейса командной строки. Основное отличие от обычной группы Click заключается в том, что AppGroup автоматически передаёт объект приложения в контекст команды, что позволяет получать доступ к current_app внутри команд.
Синтаксис
from flask.cli import AppGroup
AppGroup(name=None, commands=None, **attrs)
Параметр name задаёт имя группы, которое будет отображаться в справке. Параметр commands принимает словарь или список команд для добавления в группу. Дополнительные атрибуты передаются в родительский класс Group.
Пример
Давайте создадим группу команд и добавим в неё простую команду:
from flask import Flask
from flask.cli import AppGroup
app = Flask(__name__)
user_cli = AppGroup('user')
@user_cli.command('create')
def create_user():
print('User created')
app.cli.add_command(user_cli)
Результат выполнения команды flask user create:
User created
Пример
Давайте добавим команду с аргументом и получим доступ к приложению:
from flask import Flask, current_app
from flask.cli import AppGroup
import click
app = Flask(__name__)
user_cli = AppGroup('user')
@user_cli.command('greet')
@click.argument('name')
def greet_user(name):
print(f'Hello, {name} from {current_app.name}')
app.cli.add_command(user_cli)
Результат выполнения команды flask user greet abcde:
Hello, abcde from app
Смотрите также
-
класс
Group,
который является базовым классом для AppGroup -
метод
command,
который регистрирует команду в группе -
метод
group,
который создаёт подгруппу команд -
декоратор
with_appcontext,
который обеспечивает контекст приложения