我创建了一个非常简单的 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 [email protected]
$ Password:
$ Repeat for confirmation:
[email protected] test