Python点击模块,如何将用户名和密码作为参数

Python Click module, how to take in a username and password as arguments

我创建了一个非常简单的 CLI 应用程序,它使用 Click 将用户名和密码作为参数。使用 @click.password_option() 我可以屏蔽密码并让用户确认他们的密码,而无需我这边的任何代码,这很棒。

不过,我注意到 email 字段被输入为 None。我相信这是因为我正在使用 password.option()

有人对此有解决方法吗?我试过使用 Click 的 Context.invoke()Context.forward() 来传递电子邮件字段,但这没有帮助。

@cli.command()
@click.argument("email", type=str, required=True)
@click.password_option()
def register(email, password):
        click.echo(f"{email} {password}")
Output:
> None test

以下代码按预期工作

import click

@click.command()
@click.argument("email", type=str, required=True)
@click.password_option()
def register(email, password):
        click.echo(f"{email} {password}")

if __name__ == '__main__':
    register()
$ python3 example.py foo@bar.com
$ Password:
$ Repeat for confirmation:
foo@bar.com test