python - Flask-script 添加命令和选项

标签 python flask flask-script

我想要一个 bool 标志和一个为我的命令提供 n 个参数的选项。所需的示例用法:

python manage.py my_command --all # Execute my_command with all id's

python manage.py my_command --ids id1 id2 id3 ... # Execute my_command with n ids

python manage.py my_command --all --ids id1 id2 id3 ... # Throw an error

我的函数现在看起来像这样(如果两者都提供了,函数的主体也有抛出错误的逻辑):

@my_command_manager.option("--all", dest="all_ids", default=False, help="Execute for all ids.")
@my_command_manager.option("--ids", dest="ids", nargs="*", help="The ids to execute.")
def my_command(ids, all_ids=False): #do stuff

这适用于 --ids 选项,但 --all 选项表示:错误:参数 --all:需要一个参数

TLDR:如何才能同时拥有选项和命令?

最佳答案

尝试action='store_true' .

示例:

from flask import Flask
from flask.ext.script import Manager

app = Flask(__name__)
my_command_manager = Manager(app)

@my_command_manager.option(
    "--all",
    dest="all_ids",
    action="store_true",
    help="Execute for all ids.")
@my_command_manager.option(
    "--ids",
    dest="ids",
    nargs="*",
    help="The ids to execute.")
def my_command(ids, all_ids):
    print(ids, all_ids)


if __name__ == "__main__":
    my_command_manager.run()

关于python - Flask-script 添加命令和选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32524164/

相关文章:

python - 学习 : Calibrate a multi-label classification with CalibratedClassifierCV

sqlalchemy - celery + SQLAlchemy : DatabaseError: (DatabaseError) SSL error: decryption failed or bad record mac

heroku - flask / unicorn : setting environment variable from environment variable

python - 在 Docker 中根据更改重新启动 Flask 应用程序

python - flask 脚本文件结构

Python numpy 解包函数

javascript - 将值传递给搜索栏

python - KeyError:[列] 中没有 Float64Index,不确定如何进行

Python Flask 将访问日志写入 STDERR

python - Heroku 上的 Flask 数据库迁移