Hello Coders,
В данной статье представлена проект Flask Prommance, который реализует пользовательские команды на вершине Флэк команда команд интерфейс. Пользовательские команды могут быть полезны для реализации задач технического обслуживания, проверьте состояние приложения в производстве или просто загружать новые записи в базу данных, используя файл JSON в качестве ввода. Код, доступный на GitHub, может быть продлен с легкостью, чтобы охватить более полезные случаи использования.
Спасибо! Содержание, предоставленное Генератор приложений Отказ
- Флэк команда команд – Образец проекта
- Flask Black Dashboard – Оригинальный стартер
Как использовать код
Код выборки может быть скомпилирован несколькими командами, набирающимися в терминале, если среда Python3 работает и работает на нашем рабочем пространстве. Первый шаг – клонировать проект:
$ # Get the code $ git clone https://github.com/app-generator/flask-command-line.git $ cd flask-command-line
Установите модули и настроить среду:
$ # Virtualenv modules installation (Unix based systems) $ virtualenv env $ source env/bin/activate $ $ # Install dependencies $ pip3 install -r requirements.txt $ $ export FLASK_APP=run.py
На данный момент приложение готово к выполнению, и мы можем перечислить зарегистрированные (новые) команды:
$ # List the new commands $ flask commands Usage: flask commands [OPTIONS] COMMAND [ARGS]... Options: --help Show this message and exit. Commands: cfg List all Config Variables <-- NEW Command hello Simple Hello <-- NEW Command
Узел «Команды» показывают две команды, которые мы можем вызывать и проверять результаты:
$ flask commands hello Custom command - Hello <- The Output
Наша первая команда довольно проста: печатает сообщение «Hello». Код можно найти в « Команды » Чертеж:
@commands.cli.command('hello') def hello(): """ Simple Hello """ print("Custom command - Hello")
Со второй пользовательской командой мы приближаемся к чему-то полезному: перечислите переменные конфигурации и, необязательно, фильтруйте выходные данные с помощью входной строки.
Вот код – определен в том же файле ( commands.py ):
@commands.cli.command('cfg') @click.argument('filter', required=False) def config(filter=None): """ List all Config Variables """ print("Custom command - Cfg(Filter="+str(filter)+")") for key in current_app.config: val = str( current_app.config[key] ) # Filtered config if filter: if re.search(filter, key, re.IGNORECASE): print ( ' |- ' + key + ' -> ' + val ) # Unfiltered config else: print ( ' |- ' + key + ' -> ' + val )
Приведенный выше код прочитал дополнительный параметр «Фильтр» и итерации по переменным конфигурации приложений. Если параметр «FILTER» определяется, только клавиши, которые соответствуют фильтру, перечислены.
Пользовательская команда
$ # Unfiltered output (list all keys) $ flask commands cfg
Выход
Custom command - Cfg(Filter=None) |- ENV -> production |- DEBUG -> False |- TESTING -> False |- PROPAGATE_EXCEPTIONS -> None |- PRESERVE_CONTEXT_ON_EXCEPTION -> None |- SECRET_KEY -> S3cr3t_K#Key |- PERMANENT_SESSION_LIFETIME -> 31 days, 0:00:00 |- USE_X_SENDFILE -> False |- SERVER_NAME -> None |- APPLICATION_ROOT -> / |- SESSION_COOKIE_NAME -> session |- SESSION_COOKIE_DOMAIN -> None |- SESSION_COOKIE_PATH -> None |- SESSION_COOKIE_HTTPONLY -> True |- SESSION_COOKIE_SECURE -> False |- SESSION_COOKIE_SAMESITE -> None ... (truncated output)
Чтобы увидеть фильтрованные клавиши конфигурации, мы должны предоставить дополнительный входной параметр.
Пользовательская команда
$ # Filter ouput that matches `database` $ flask commands cfg database
Выход
Custom command - Cfg(Filter=database) |- SQLALCHEMY_DATABASE_URI -> sqlite:///...\flask-command-line-blueprints\db.sqlite3
Давайте выделим все параметры конфигурации с «JSON» в своих именах:
Пользовательская команда
$ # Filter ouput that matches `JSON` $ flask commands cfg JSON
Выход
Custom command - Cfg(Filter=JSON) |- JSON_AS_ASCII -> True |- JSON_SORT_KEYS -> True |- JSONIFY_PRETTYPRINT_REGULAR -> False |- JSONIFY_MIMETYPE -> application/json
С этого момента код может быть продлен с легкостью для выполнения других полезных задач:
- Удалить неактивные учетные записи пользователей
- Извлечь информацию о продажах и другую полезную статистику
- Уведомить пользователей относительно новых продуктов и обновлений
Спасибо за чтение! Для дальнейшего ресурса, пожалуйста, доступа к:
- Flask Cli (Интерфейс командной строки) – Официальные документы
- Используйте Flask CLI для создания команд для вашего PostgreSQL – Статья в блоге
- Колбу начала – Отверенный индекс, предоставленный Appseed.
Оригинал: “https://dev.to/sm0ke/flask-command-line-open-source-sample-34m9”