如何为flask run命令添加自定义命令行参数
给
flask run命令添加自定义参数的实现方法 Flask 的命令行体系基于 Click 框架,默认的flask run命令没有预留额外位置参数的接收逻辑,直接在后面加参数就会抛出你遇到的「意外额外参数」错误,你可以通过以下两种方案实现自定义参数传入:
方案一:扩展默认启动逻辑,添加自定义选项参数
在你的 Flask 应用入口文件(比如app.py)中添加如下代码,给应用初始化逻辑追加参数接收规则:
import click from flask import Flask from flask.cli import FlaskGroup app = Flask(__name__) @click.option('--myarg', default='default_value', help='自定义传入参数') def create_app(myarg): # 可将拿到的参数存入应用配置,方便后续业务逻辑调用 app.config['MY_CUSTOM_ARG'] = myarg return app if __name__ == '__main__': cli = FlaskGroup(create_app=create_app) cli()
启动时使用以下命令传入参数即可:flask --myarg arg1 run
业务逻辑中可以直接通过app.config['MY_CUSTOM_ARG']读取传入的参数值。
方案二:自定义专属启动命令
如果不想修改默认flask run的使用逻辑,也可以单独定义一个带参数的启动命令:
import click from flask import Flask app = Flask(__name__) # 定义自定义启动命令 @app.cli.command('run-with-arg') @click.argument('myarg') def run_with_custom_arg(myarg): # 处理自定义参数逻辑 app.config['MY_CUSTOM_ARG'] = myarg # 启动Flask应用 app.run()
启动时执行以下命令即可传入位置参数:flask run-with-arg arg1
补充说明:如果你的参数是敏感信息或者需要多环境复用,也可以考虑通过环境变量传递参数,Flask 本身支持自动读取以
FLASK_开头的环境变量存入配置,不需要额外修改命令行规则。
内容的提问来源于stack exchange,提问作者Mehrdad Mirzaei
相关产品推荐
相关产品推荐

